#sql #excel #vba
#sql #excel #vba
Вопрос:
Мне нужно вызвать группу записей, хранящихся в базе данных MS Access. До сих пор мне удавалось отображать все записи, но мне нужно отображать определенные записи на основе номера фолио, который хранится в текстовом поле пользовательской формы.
Я пытался изменить WHERE Folio = me.tbFolio.Value
несколько раз, но я просто не могу сделать это правильно, он продолжает показывать все наборы записей в базе данных.
Private Sub Srch_Click()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long, sSQL As String, Fl As Long
Let Fl = tbFolio.Value - 1
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" amp; _
"Data Source=S:CommonQualityRASTREABILIDADMAIN PROJECTPROYECTO KOREANO MX.accdb;"
Set rs = New ADODB.Recordset
rs.Open "Trazabilidad", cn, adOpenStatic, adLockReadOnly, adCmdTable
sSQL = "SELECT [Folio], [N° de Orden, Fecha], [N° de Parte, Materiales], [N° de Parte Material], [N° de Lote/Fecha de Proucción], [Quién Capturo]" amp; _
"FROM Trazabilidad" amp; _
"WHERE Folio = me.tbfolio.value;"
MsgBox rs.GetString, vbOKOnly, "Trazabilidad"
cn.Close
Set cn = Nothing
End Sub
Комментарии:
1. Попробуйте изменить «WHERE Folio = me.tbfolio.value;» на «WHERE Folio = ‘» amp; me.tbfolio.value amp; «‘;»
Ответ №1:
Вы должны попытаться объединить (используя amp;) значение из текстового поля, чтобы поместить это значение в ваш запрос
Private Sub Srch_Click()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long, sSQL As String, Fl As Long
Let Fl = tbFolio.Value - 1
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" amp; _
"Data Source=S:CommonQualityRASTREABILIDADMAIN PROJECTPROYECTO KOREANO MX.accdb;"
Set rs = New ADODB.Recordset
rs.Open "Trazabilidad", cn, adOpenStatic, adLockReadOnly, adCmdTable
sSQL = "SELECT [Folio], [N° de Orden, Fecha], [N° de Parte, Materiales], [N° de Parte Material], [N° de Lote/Fecha de Proucción], [Quién Capturo]" amp; _
"FROM Trazabilidad" amp; _
"WHERE Folio = " amp; me.tbfolio.value
MsgBox rs.GetString, vbOKOnly, "Trazabilidad"
cn.Close
Set cn = Nothing
End Sub
если это
изменение строки
"WHERE Folio = " amp; me.tbfolio.value
для
"WHERE Folio = '" amp; me.tbfolio.value amp; "'"