У меня есть команда в доступе, которая после ее щелчка добавит новую строку в соответствующую таблицу. Проблема заключается в ее непреходящем переменной в SQL, это просто вставить строки с АКТУАЛЬНЫМ string..like MyDate ... MyId .... Может кто-нибудь помочь мне исправить это ...pass vba variable to sql
Private Sub Command34_Click()
On Error GoTo Err_Command34_Click
Dim myDate As Date
Dim myQty As Long
Dim myAdj As Long
Dim myReason As String
Dim myId As Long
Dim sqlMyDate As String
Dim sqlMyQty As String
Dim sqlMyAdj As String
Dim sqlMyReason As String
Dim sqlMyID As String
Dim mySqlInsert As String
sqlMyDate = "SELECT TOP 1 [DATE OF PHYSICAL INVENTORY] FROM [PHYSICAL INVENTORY FINISHED GOODS] WHERE [JOB #]=""2188"" ORDER BY [PHYSICAL INVENTORY FINISHED GOODS].[ID] DESC;"
sqlMyQty = "SELECT TOP 1 [REQ'D ADJUSTMENT] FROM [PHYSICAL INVENTORY FINISHED GOODS] WHERE [JOB #]=""2188"" ORDER BY [PHYSICAL INVENTORY FINISHED GOODS].[ID] DESC;"
sqlMyAdj = "SELECT TOP 1 [REQ'D ADJUSTMENT] FROM [PHYSICAL INVENTORY FINISHED GOODS] WHERE [JOB #]=""2188"" ORDER BY [PHYSICAL INVENTORY FINISHED GOODS].[ID] DESC;"
sqlMyReason = "SELECT TOP 1 [REASON ADJUSTMENT REQ'D] FROM [PHYSICAL INVENTORY FINISHED GOODS] WHERE [JOB #]=""2188"" ORDER BY [PHYSICAL INVENTORY FINISHED GOODS].[ID] DESC;"
sqlMyID = "SELECT TOP 1 [ID] FROM [PHYSICAL INVENTORY FINISHED GOODS] ORDER BY [PHYSICAL INVENTORY FINISHED GOODS].[ID] DESC;"
myDate = CurrentDb.OpenRecordset(sqlMyDate).Fields(0).Value
myQty = CurrentDb.OpenRecordset(sqlMyQty).Fields(0).Value
myAdj = 0 - CurrentDb.OpenRecordset(sqlMyAdj).Fields(0).Value
myId = CurrentDb.OpenRecordset(sqlMyID).Fields(0).Value + 1
If CurrentDb.OpenRecordset(sqlMyReason).Fields(0).Value = Null Then
myReason = "No Reason"
Else
myReason = CurrentDb.OpenRecordset(sqlMyReason).Fields(0).Value
End If
DoCmd.RunSQL "INSERT INTO [PHYSICAL INVENTORY FINISHED GOODS] ([ID],[JOB #],[DATE OF PHYSICAL INVENTORY],[QTY FORMED],[QTY WIP],[QTY ON HAND],[REQ'D ADJUSTMENT],[REASON ADJUSTMENT REQ'D],[DATE POSTED]) VALUES (""&myId&"",""2180"",""&myDate&"",""0"",""0"",""&myQty&"",""&myAdj&"",""&myReason&"");"
Exit_Command34_Click:
Exit Sub
Err_Command34_Click:
MsgBox Err.Description
Resume Exit_Command34_Click
вы проверили, что SQL на самом деле, попробуйте сделать MsgBox с SQL заявления Проверять. –