PDA

View Full Version : سوال: ارتباط بین Textbox با دستورات SQL



mohammadsavadian
چهارشنبه 15 آبان 1392, 13:30 عصر
سلام دوستان
من یه پروژه دارم میخوام تو فرم وقتی کد کالا رو با Combo انتخاب کردم نام کالا اتومات توی یه Textbox نمایش داده شه لطفا راهنماییم کنید

mmbguide
چهارشنبه 15 آبان 1392, 17:26 عصر
سلام

باید از این کد در After Update شی Combo استفاده کنی
Me.Text0.Value = Me.Combo2.Text
فقط باید بدونید که در این مثال وقتی شما combo رو باز میکنید لیست تمام کالاها از جدول گرفته شده است و در واقع شما کد کالا رو نمیبینید و فقط نام کالا مشخص است اما اگر فقط و فقط کد کالا در لیست نمایش داده میشود باید از دستور زیر در After Update شی Combo استفاده کنی
Me.Text0.Value = DLookup("[NameKala]", "[Table1]", "[ID]=Combo2.Value")

SayeyeZohor
پنج شنبه 16 آبان 1392, 21:59 عصر
سلام

باید از این کد در After Update شی Combo استفاده کنی
Me.Text0.Value = Me.Combo2.Text
فقط باید بدونید که در این مثال وقتی شما combo رو باز میکنید لیست تمام کالاها از جدول گرفته شده است و در واقع شما کد کالا رو نمیبینید و فقط نام کالا مشخص است اما اگر فقط و فقط کد کالا در لیست نمایش داده میشود باید از دستور زیر در After Update شی Combo استفاده کنی
Me.Text0.Value = DLookup("[NameKala]", "[Table1]", "[ID]=Combo2.Value")

با دستور اسكيوال چطور ميشه اينكارو انجام داد؟
من با اجراي كوئري در اكسس مشكل دارم :عصبانی++:
چطوري مي شه از نتيجه يك كوئري در اكسس مقدار يك فيلد خاص رو بفهميم؟
مثل همين مثال

mmbguide
پنج شنبه 16 آبان 1392, 22:49 عصر
یه چیزی شبیه به این رو باید روش کار کنی

Dim db As Database
Dim rst As Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset("select NameKala from table1 where id=" & Me.Combo9.Value)
Me.Text7.Value = rst!NameKala

Abbas Amiri
پنج شنبه 16 آبان 1392, 23:20 عصر
یه چیزی شبیه به این رو باید روش کار کنی

Dim db As Database
Dim rst As Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset("select NameKala from table1 where id=" & Me.Combo9.Value)
Me.Text7.Value = rst!NameKala

در همان پست 2 هم باید به همین روش عمل می کردید:

Me.Text0.Value = DLookup("[NameKala]", "[Table1]", "[ID]=" & Combo2.Value)

SayeyeZohor
پنج شنبه 16 آبان 1392, 23:54 عصر
Public Function lookUpColumnValue(Database As Database, column As String, table As String, lookUpColumn As String, lookUpValue As String) As String

Dim sql As String
Dim recordSet As DAO.recordSet
Dim result As String

lookUpColumnValue = "" 'Return a blank string if no result

On Error Resume Next

'sql = "SELECT [" & table & "].[" & column & "] FROM [" & table & "] WHERE [" & table & "].[" & lookUpColumn & "] = '" & lookUpValue & "'"
sql = "SELECT " & table & "." & column & " FROM " & table & " WHERE " & table & "." & lookUpColumn & " = " & """" & lookUpValue & """"
Set recordSet = Database.OpenRecordset(sql)

MsgBox sql, vbInformation + vbMsgBoxRight, "íãÇíÔ ÑßæÑÏåÇ"
If Not recordSet.EOF Then
Dim td As DAO.TableDef

'this gives your number - say, 19
result = recordSet(column)

Set td = Database.TableDefs(table)

'Get the rowsource
Dim p As DAO.Property
For Each p In td.Fields(column).Properties
If p.name = "RowSource" Then
RowSource = Replace(td.Fields(column).Properties("RowSource"), ";", "")
Exit For
End If
Next

If Not RowSource = "" Then
Dim rs2 As DAO.recordSet
Dim qd As DAO.QueryDef

Set qd = Database.CreateQueryDef("", RowSource)
Set rs2 = Database.OpenRecordset(RowSource)

If rs2.EOF Then Exit Function

PKField = rs2.Fields(0).name

rs2.Close
qd.Close

sql = "SELECT * FROM (" & RowSource & ") WHERE [" & PKField & "]=[KeyField]"
MsgBox sql, vbInformation + vbMsgBoxRight, "íãÇíÔ ÑßæÑÏåÇ"
Set qd = Database.CreateQueryDef("", sql)
qd.Parameters("KeyField?").Value = result

Set rs2 = qd.OpenRecordset()

If Not rs2.EOF Then
'NOTE: This assumes your RowSource *always* has ID first, description 2nd. This should usually be the case.
lookUpColumnValue = rs2.Fields(1)
End If
Else
'Return the field value if there is no RowSource
lookUpColumnValue = recordSet.Fields(column)
End If
End If

End Function


اين دستور رو پيدا كرده بودم كه كار نمي داد