چگونه می توان محل قرار گیری یا Position یک رکورد را در یک بانک اطلاعاتی اکسس را بدست آورد؟
فرض کنید یک رکورد را با دستور Select انتخاب کردیم برای اینکه بدانیم چندمین رکورد است چه کار باید کرد ؟
چگونه می توان محل قرار گیری یا Position یک رکورد را در یک بانک اطلاعاتی اکسس را بدست آورد؟
فرض کنید یک رکورد را با دستور Select انتخاب کردیم برای اینکه بدانیم چندمین رکورد است چه کار باید کرد ؟
اينو از Msdn برداشتم ولي امتحان نكردم ببين به دردت ميخوره
كد اين بود يادم رفت با بالائي پست كنم
Public Sub AbsolutePositionX()
Dim rstEmployees As ADODB.Recordset
Dim strCnn As String
Dim strMessage As String
' Open a recordset for the Employee table
' using a client cursor.
strCnn = "driver={SQL Server};server=srv;" & _
"uid=sa;pwd=;database=pubs"
Set rstEmployees = New ADODB.Recordset
' Use client cursor to enable AbsolutePosition property.
rstEmployees.CursorLocation = adUseClient
rstEmployees.Open "employee", strCnn, , , adCmdTable
' Enumerate Recordset.
Do While Not rstEmployees.EOF
' Display current record information.
strMessage = "Employee: " & rstEmployees!lName & vbCr & _
"(record " & rstEmployees.AbsolutePosition & _
" of " & rstEmployees.RecordCount & ")"
If MsgBox(strMessage, vbOKCancel) = vbCancel _
Then Exit Do
rstEmployees.MoveNext
Loop
rstEmployees.Close
End Sub
رویداد respone را امتحان کن !
در ثانی تو دستورات sql دستوری وجود نداره !
اينكه محل فيزيكي ركورد رو تشخيص بدي امكان پذير نيست. چون با حذف و بروزرساني ركوردها دائما جاي اونها در فايل تغيير ميكنه و ثابت نيست. منتها ميشه رديف ركورد خاصي رو در نتيجه برگشت دستورات Sql بدست بياري. ولي بگو كه براي چي همچين چيزي رو ميخواي؟
ابتدا در ركوردست فعلي يكبار MoveLast و بعد MoveFirst را انجام بده ( كد براش بنويس )
حالا Recordset.RecordCount تعداد كل ركوردها رو بهت ميده
بعد در هر ركوردي كه رفتي AbsolsatePosition محل ركورد رو در ركوردست فعلي بهت ميده
البته شمارش از 0 شروع مي شه
الاخ...
در اسکوئل دستوری به نام Findfirst هست که فکر کنم به دردت بخوره
strDBName = "fileshoma.mdb"
Set dbf = DBEngine.OpenDatabase(strDBName, False, False)
Set tbl= dbs.OpenRecordset("SELECT * FROM tabelshoma")
tbl.findfirst "esmefield=10"
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)