2016-03-29 2 views
0

Создание отчета из запроса; захват данных из нескольких таблиц. В отчете есть два рассчитанных поля, и я хочу вернуть данные обратно в одну из таблиц. Отладка показывает, что я захватываю переменные, но продолжает давать мне синтаксические ошибки в предложении WHERE. Я пробовал много итераций синтаксиса от чистки сети.Обновить синтаксическую ошибку в предложении WHERE

Private Sub Report_Load() 
Dim sqls As String 
Dim TEP As Single 
Dim PPS As Single 
Dim RecipeN As String 
TEP = Reports![RecipeBuild]![txtTEP] 
PPS = Reports![RecipeBuild]![txtPPS] 
RecipeN = Reports![RecipeBuild]![RecipeName] 
sqls = "Update [tblRecipeBuild] " _ 
    & "Set TEP = " & TEP & " " _ 
    & "Set PPS = " & PPS & " " _ 
    & "WHERE [RecipeName] = '" & RecipeN & "';" 
DoCmd.SetWarnings False 
DoCmd.RunSQL sqls 
DoCmd.SetWarnings True 
End Sub 

ответ

2

регулирования доступа к SQL UPDATE должен включать SET ключевое слово только один раз.

Если вы хотите обновить более одного поля, используйте один раз SET, а затем используйте запятую между парами FieldName = Value сегментов.

sqls = "Update [tblRecipeBuild] " _ 
    & "Set TEP = " & TEP & ", PPS = " & PPS & " " _ 
    & "WHERE [RecipeName] = '" & RecipeN & "';" 

Я думаю, что должно работать, но предлагаю вам рассмотреть запрос параметра вместо конкатенации значений в UPDATE заявлении.

Dim db As DAO.Database 
Dim qdf As DAO.QueryDef 
Dim strUpdate As String 
strUpdate = "UPDATE tblRecipeBuild SET TEP=pTEP, PPS=pPPS WHERE RecipeName=pRecipeN;" 
Debug.Print strUpdate 
Set db = CurrentDb 
Set qdf = db.CreateQueryDef(vbNullString, strUpdate) 
With qdf 
    .Parameters("pTEP").Value = TEP 
    .Parameters("pPPS").Value = PPS 
    .Parameters("pRecipeN").Value = RecipeN 
End With 
qdf.Execute dbFailOnError 
+0

Благодарим за помощь и отзыв. Я довольно новичок в мире Access/Database (много опыта VBA в Excel), но мне действительно нравится изучать «почему» за функциями. Я буду исследовать и попытаться понять, почему вы рекомендуете угол запроса параметра. –

Смежные вопросы