PDA

View Full Version : دسترسی به فیلد های اکسس از طریق vb



khomar
پنج شنبه 31 فروردین 1385, 22:59 عصر
چه جوری می شه از طریق دستورات vb به محتویات یک فیلد در یک جدول اکسس دسترسی پیدا کرد در واقع می خوام بگم اگه فلان مقدار از فلان فیلد ار فلان جدول اکسس وجود داشت این کار رو انجام بده در غیر این صورت ...

yavari
جمعه 01 اردیبهشت 1385, 17:04 عصر
سلام
میتونی از ADO یا DAO استفاده کنی


این یه نمونه با ADO هست
با استفاده از SQL نویسی خیلی راحت میتونی کارای زیادی بکنی
Set cnn = New ADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\MyBank.mdb;Persist Security Info=False;Jet OLEDB:Database Password=xx"
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM MyTable WHERE .......", cnn, adOpenKeyset, adLockPessimistic, adCmdText

اگه مشکلی بود بگو

khomar
جمعه 01 اردیبهشت 1385, 23:33 عصر
اس کیو ال بلدم اما ببخشید می شه بگید چه جوری باید این کد رو بخونم؟
شما مطمئنید این کد می تونه مشکل منو حل کنه؟

khomar
جمعه 01 اردیبهشت 1385, 23:35 عصر
دو سه خط اولش رو فهمیدم چیکار می کنه اما بعدی ها رو دقیقا نفهمیدم

yavari
شنبه 02 اردیبهشت 1385, 09:37 صبح
سلام دوست عزیز

شما از طریق اون کدا میتونید اتصال به بانکتون برقرار کنید و با دستو select بانکتونو اونجوری که دوست دارید باز کنید تا نیاز به سرچ نداشته باشه
یا اینکه معمولی تیبلو باز کند بعد با سرچ ، به رکورد موردنظرتون برسید و اونوقت شرط هاتونو بیان کنید
ولی با SQL کلی راحت ترید
rs.Open "SELECT code , name , " _
& "FROM MyTable WHERE Nobat <> 0", cnn, adOpenKeyset, adLockPessimistic, adCmdText

دوست من ، من نمی دونم چه جوری براتون مثال بزنم ، اگه میشه کدتونو بذارید تا انشاالله با همکاری دوستان درستش کنیم

موفق باشید

khomar
شنبه 02 اردیبهشت 1385, 23:38 عصر
سلام
می دونم با اون کد ها اتصال بر قرار می شه


من در واقع دارم یه مقدار رو سرچ می کنم اما می خوام بهش
بگم اگه مثلا مقدار 34 از فیلد مثلا ... وجود نداشت مثلا پیغام بده مقدار 34 وجود ندارد (با ام اس جی باکس البته تا اونجایی که فکر من می رسه) این کاریه که من می خوام انجام بدم دیگه نمی دونم باید چه جوری کدش رو نوشت با توجه به راه حل هایی که اینجا نوشتبد ممنوم می شم منو راهنمایی کنید

yavari
دوشنبه 04 اردیبهشت 1385, 18:38 عصر
سلام دوست من

دوست من ، یعنی میخوای بری به رکورد 34 بعد بگی مثلا اگه مقدار فیلد قیمت خالی بود حالا بیاد پیغام بده ؟؟؟ :متفکر: :متفکر:
اگه منظورت اینه ، این راهش :
rs.Move 34
If rs.Fields("Price")=0 Then MsgBox "NO Value"
وگرنه یا بیشتر توضیح بده یا اینکه یه کمی صبر کن یه Example کلی برات بذارم

موفق باشی

khomar
دوشنبه 04 اردیبهشت 1385, 23:44 عصر
سلام دوست من

دوست من ، یعنی میخوای بری به رکورد 34 بعد بگی مثلا اگه مقدار فیلد قیمت خالی بود حالا بیاد پیغام بده ؟؟؟ :متفکر: :متفکر:
اگه منظورت اینه ، این راهش :
rs.Move 34
If rs.Fields("Price")=0 Then MsgBox "NO Value"
وگرنه یا بیشتر توضیح بده یا اینکه یه کمی صبر کن یه Example کلی برات بذارم

موفق باشی

رکورد نه دوست من من می خوام به مقدار های فیلد ها (مثلا فیلد کد)دسترسی داشته باشم مثلا بگم اگه کد 34 که کاربر وارد کرده جزو مقدارهای فیلد کد نبود پیغام بده کد وارد شده رو پیدا نکردم در غیر این صورت مثلا یه کاری انجام بده یا ...

با توجه به توضیحی که من دادم این کد درسته؟

yavari
سه شنبه 05 اردیبهشت 1385, 19:09 عصر
سلام

این یه راهش


rs.Open "SELECT code FROM Table WHERE code=34"
If rs.RecordCount = 0 Then MsgBox "No Found"

اینم یه راه دیگه


rs.Open "SELECT code FROM Table"
rs.MoveFirst
For i = 0 To rs.RecordCount
If rs.Fields("code") = txtCode.Text Then Exit Sub
rs.MoveNext
Next i
MsgBox "No Found"


موفق باشی

khomar
سه شنبه 05 اردیبهشت 1385, 23:32 عصر
سلام

این یه راهش


rs.Open "SELECT code FROM Table WHERE code=34"
If rs.RecordCount = 0 Then MsgBox "No Found"

اینم یه راه دیگه


rs.Open "SELECT code FROM Table"
rs.MoveFirst
For i = 0 To rs.RecordCount
If rs.Fields("code") = txtCode.Text Then Exit Sub
rs.MoveNext
Next i
MsgBox "No Found"


موفق باشی


دوست عزیز
یک دنیا سپاسگزارم

yavari
چهارشنبه 06 اردیبهشت 1385, 10:34 صبح
سلام

قابلی نداشت
موفق باشی

khomar
جمعه 08 اردیبهشت 1385, 23:41 عصر
سلام
ببخشید ممکنه یه نگاهی به این کد بندازید من علاوه بر کد شما یه سری کد دیکه هم اضافه کردم اما حالا ارور می ده اون قسمتهایی که قرمز رنگه:گریه:

Private Sub Command4_Click()
'Dim a As String
'Dim b As Integer
Dim rs As New ADODB.Recordset
Dim cnn As New ADODB.Connection
cnn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=d:\entesharat\entesharat.mdb"
cnn.Open
r = InputBox("&Egrave;&Ntilde;&Ccedil;&iacute; &Igrave;&Oacute;&Ecirc;&Igrave;&aelig; ˜&Iuml; &Ntilde;&Ccedil; &aelig;&Ccedil;&Ntilde;&Iuml; ˜&auml;&iacute;&Iuml; ", "&Igrave;&Oacute;&Ecirc;&Igrave;&aelig;")
If r <> "" Then
rs.Open "select * from ozv where code=" + r + "", cnn, adOpenDynamic
'rs.Open "select code FROM ozv"
rs.MoveFirst
For i = 0 To rs.RecordCount
If rs.Fields("code") = r Then 'Exit Sub
Form4.Show
rs.Open "select * from ozv where code=" + r + "", cnn, adOpenDynamic
Form4.Text1.Text = rs("name")
Form4.Text2.Text = rs("family")
Form4.Text3.Text = rs("student")
Form4.Text4.Text = rs("reshte")
Form4.Text5.Text = rs("code")
Form4.Text6.Text = rs("tarikh")
Form4.Text7.Text = rs("tozihat")
End If
rs.MoveNext
Next i

MsgBox "˜&Iuml; &atilde;&aelig;&Ntilde;&Iuml; &auml;&Ugrave;&Ntilde; پ&iacute;&Iuml;&Ccedil; &auml;&Ocirc;&Iuml;"
Form2.Show
End If
End Sub

yavari
شنبه 09 اردیبهشت 1385, 19:11 عصر
سلام دوست من

لطف کنید ارور رو بگید
اما همیشه قبل از رفتن به اولین رکورد خالی بودن یا نبودن دیتا بیسو چک کنید و اگر خالیه از روال خارج شوید
موفق باشید

khomar
سه شنبه 12 اردیبهشت 1385, 00:01 صبح
من همین کد بالایی رو بدون این که چیزی رو توضیح کنم ( ')نوشتم ارور زیر رو داد
operetion is not allowed when the object is open.
که ارورش مربوط به خط 11 می شه من خط 11 رو توضیح کردم اما حالا چه کدی که تو اکسس باشه چه نباشه پیغام میده کد در جدول وجود نداره در واقع همش همون خط 27 اجرا می شه و میگه کد وجود نداره

rostami
سه شنبه 12 اردیبهشت 1385, 11:54 صبح
من همین کد بالایی رو بدون این که چیزی رو توضیح کنم ( ')نوشتم ارور زیر رو داد
operetion is not allowed when the object is open.
که ارورش مربوط به خط 11 می شه من خط 11 رو توضیح کردم اما حالا چه کدی که تو اکسس باشه چه نباشه پیغام میده کد در جدول وجود نداره در واقع همش همون خط 27 اجرا می شه و میگه کد وجود نداره


خوب معلومه دیگه. شما در حالی از دستور rs.open استفاده میکنید که تیبل هنوز بازه و بسته نشده است. خود error هم کاملاً واضح بهتون میگه قضیه چیه!

khomar
چهارشنبه 13 اردیبهشت 1385, 23:42 عصر
یکی نیست دقیقا بهم بگه مشکل کجاست من اگه می دونستم که نمی اومدم سوال کنم خوب درست بگید باید چیکار کنم

yavari
پنج شنبه 14 اردیبهشت 1385, 16:02 عصر
سلام
ببین عزیز من ، رکورد ستو اینجوری باز کن ، در ضمن اون خطه هم همونجوری توضیح باشه
در ضمن باهاتون موافقم ، سوال کردن عیب نیست ، ندونستن عیبه، ولی خب یه ذره مطالعه داشته باشید راحت تر جلو می رید !

rs.Open "select * from ozv where code=" & r , cnn, adOpenDynamic
موفق باشی

yavari
جمعه 15 اردیبهشت 1385, 09:25 صبح
سلام
با اجازه تون یه تغییراتی تو کدتون دادم ، امیدوارم جسارت تلقی نشه :اشتباه:


Private Sub Command4_Click()
Dim rs As New ADODB.Recordset
Dim cnn As New ADODB.Connection
cnn.Open "provider=microsoft.jet.oledb.4.0;data source=d:\entesharat\entesharat.mdb"
r = InputBox("&Egrave;&Ntilde;&Ccedil;&iacute; &Igrave;&Oacute;&Ecirc;&Igrave;&aelig; ?&Iuml; &Ntilde;&Ccedil; &aelig;&Ccedil;&Ntilde;&Iuml; ?&auml;&iacute;&Iuml; ", "&Igrave;&Oacute;&Ecirc;&Igrave;&aelig;")
If r <> "" Then
rs.Open "select * from ozv ", cnn, adOpenKeyset, adLockPessimistic, adCmdText
rs.MoveFirst
For i = 0 To rs.RecordCount - 1
If rs.Fields("code") = CInt(r) Then 'Exit Sub
Form4.Show
Form4.Text1.Text = rs("name")
Form4.Text2.Text = rs("family")
Form4.Text3.Text = rs("student")
Form4.Text4.Text = rs("reshte")
Form4.Text5.Text = rs("code")
Form4.Text6.Text = rs("tarikh")
Form4.Text7.Text = rs("tozihat")
Exit Sub
End If
rs.MoveNext
Next i
MsgBox "?&Iuml; &atilde;&aelig;&Ntilde;&Iuml; &auml;&Ugrave;&Ntilde; پ&iacute;&Iuml;&Ccedil; &auml;&Ocirc;&Iuml;"
Form2.Show
End If
End Sub


موفق باشی

riyahiyan
جمعه 15 اردیبهشت 1385, 12:16 عصر
یه مقاله واقعا کامل تو سایت هست در مورد ADO با او ماهیگیری رو یاد میگیری.در ضمن فارسیه.

khomar
دوشنبه 18 اردیبهشت 1385, 23:31 عصر
سلام
با اجازه تون یه تغییراتی تو کدتون دادم ، امیدوارم جسارت تلقی نشه :اشتباه:


Private Sub Command4_Click()
Dim rs As New ADODB.Recordset
Dim cnn As New ADODB.Connection
cnn.Open "provider=microsoft.jet.oledb.4.0;data source=d:\entesharat\entesharat.mdb"
r = InputBox("&Egrave;&Ntilde;&Ccedil;&iacute; &Igrave;&Oacute;&Ecirc;&Igrave;&aelig; ?&Iuml; &Ntilde;&Ccedil; &aelig;&Ccedil;&Ntilde;&Iuml; ?&auml;&iacute;&Iuml; ", "&Igrave;&Oacute;&Ecirc;&Igrave;&aelig;")
If r <> "" Then
rs.Open "select * from ozv ", cnn, adOpenKeyset, adLockPessimistic, adCmdText
rs.MoveFirst
For i = 0 To rs.RecordCount - 1
If rs.Fields("code") = CInt(r) Then 'Exit Sub
Form4.Show
Form4.Text1.Text = rs("name")
Form4.Text2.Text = rs("family")
Form4.Text3.Text = rs("student")
Form4.Text4.Text = rs("reshte")
Form4.Text5.Text = rs("code")
Form4.Text6.Text = rs("tarikh")
Form4.Text7.Text = rs("tozihat")
Exit Sub
End If
rs.MoveNext
Next i
MsgBox "?&Iuml; &atilde;&aelig;&Ntilde;&Iuml; &auml;&Ugrave;&Ntilde; پ&iacute;&Iuml;&Ccedil; &auml;&Ocirc;&Iuml;"
Form2.Show
End If
End Sub


موفق باشی

خواهش می کنم من از خدام بود یکی بیاد این کد رو درست کنه چون واقا توش مونده بودم ممنون

khomar
دوشنبه 18 اردیبهشت 1385, 23:32 عصر
یه مقاله واقعا کامل تو سایت هست در مورد ADO با او ماهیگیری رو یاد میگیری.در ضمن فارسیه.

اها دیدمش جالب بود