PDA

View Full Version : اتصال ado recordset به فرم اکسس



akram_raeespour
سه شنبه 10 مهر 1386, 13:17 عصر
با سلام
من یک پروژه اکسس با پسوند adp دارم که اون رو از طریق dsn به یک دیتا بیس sqlserver لینک کردم. من از طریق کد برنامه می توانم با دیتا بیس وصل شده و یک reecordset تولید کرده و آن را بخوانم و یا ویرایش کنم. اما این ado recordset رو نمی تونم به یک فرم bind کنم که اطلاعات رکوردست روی فرم نمایش یابد. کد من به این صورت است.
Private Sub Form_Open(Cancel As Integer)

dim cnxn as adodb.connection
Dim rs As ADODB.recordset
Set Cnxn = New ADODB.connection

conn_str = "ODBC;DSN=automasion;UID=sa;PWD=;DATABASE=automasio ndata"
With Cnxn
.Provider = "MSDASQL"
.Properties("Data Source").value = conn_str
.Open
End With
Set rs = New ADODB.recordset
With rs
Set .ActiveConnection = Cnxn
.CursorLocation = adUseClient
.Source = "SELECT * FROM imp_notes INNER JOIN users ON imp_notes.user_id = users.userid WHERE (((Users.userid) = " & userid & ") and ((imp_notes.done)=0))ORDER BY imp_notes.priority DESC, imp_notes.note_date DESC , imp_notes.note_time DESC "
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
Set Me.recordset = rs
Set rs = Nothing
Set cn = Nothing
exit sub
هنگام اتصال رکورد ست به فرم error زیر میاد.
method recordset of object "form name " failed
اگه کسی می دونه لطفا راهنمایی کنه. ممنون

karmand
شنبه 14 مهر 1386, 09:55 صبح
برای جستجو یک رکورد و نمایش ان روی فرم لازم نیست که این روش را استفاده کنی مانند اکسس معمولی فرم را تهیه کن و بعد با دستور اس کیو ال recordsourseفرم را تغییر بده

Private Sub Command13_Click()
Dim strsql As String
Dim mymeli As String
strsql = "SELECT dbo.View5.* FROM dbo.View5 WHERE ((codemeli = N'" & Forms!frmserch!txtmeli & "') or (barcode = N'" & Forms!frmserch!txtbarcod & "'))"
Me.RecordSource = strsql
End Sub
یک view داشتم از لینک سه جدول که اگر شما ندارید نام جدول است سپس دستور اس کیو ال را میسازید بعد در سطر اخر recordsourceفر م را تغییر دادم
رکورد مورد نظر میاید

akram_raeespour
شنبه 14 مهر 1386, 12:44 عصر
سلام
این object با نام view5 را در محیط اکسس ایجاد کردید یا sqlserver ؟
من در محیط sqlserver که ایجاد کردم جواب نداد و error can not find object...... را داد.
و طبیعی است بدون استفاده از connection نمی تواند object یی در آن جا را بشناسد. و در اکسس هم که ایجاد کردم اصلا آن را در محیط اکسس اجرا نمی کند و در کد هم همان error را می دهد.
من فکر می کنم این به این علت است که طریقه اتصال پروژه من و شما به sqlserver متفاوت است. من از ویزارد upsizing wizard استفاده کردم و در مراحل آن یک dsn ایجاد شد که از طریق آن وصل می شود. دلیل این انتخاب هم این بود که من می خوام از Sqlserver استفاده کنم که کارایی پروژه بالا برود یعنی view ها در طرف سرور اجرا شود نه client. نظر شما چیست؟
من در اینترنت خلیلی search کردم برای آن error که در پیغام اول مطرح کردم و راه حل این بود که باید از mdac2.8 را نصب کنم. که با نصب آن هم حل نشد. ولی به نظر شما این error غیر منطقی نیست؟ باید یک راه حلی وجود داشته باشد.