2015-10-19 79 views
0

嗨,大家好,我在VBA中使用Access 2013进行编码我用两种不同的方式编写我的代码,并不断收到语法错误。这是我的代码。插入声明VBA

Private Sub cmdAdd_Click() 
     CurrentDb.Execute "INSERT INTO GroupVolunteers(Group, Leader, Name, 
phone, email, EmergencyContact, EmergencyContact) " & _ 
" VALUES(" & Me.txtGroup & "','" & Me.cboLeader & "','" & Me.txtName & "','" 
& Me.txtEmail & "','" & Me.txtPhone & "','" & Me.txtEmergencyContact & "','" 
& Me.EmergencyNumber & "','" & Me.txtRegNumber & "')" 

'clear form 
cmdClear_Click 
'refresh data in list on form 
frmStudentSub.Form.Requery 
End Sub 

OR

'when we click on button Add there are two options 
'1. for insert 
'2. for update 
If Me.txtRegNumber & "" = "" Then 
    'this is for insert new 
    'add data to table 
    CurrentDb.Execute "INSERT INTO GroupVolunteers(Group, Leader, Name, 
    phone, email, EmergencyContact, EmergencyContact) " & _ 
      " VALUES(" & Me.txtGroup & "','" & Me.cboLeader & "','" &  
    Me.txtName & "','" & _ 
      Me.txtEmail & "','" & Me.txtPhone & "','" & 
    Me.txtEmergencyContact & "','" & Me.EmergencyNumber & "','" &_ 
    Me.txtRegNumber & "')" 
Else 
'otherwise (Tag of txtID store the id of student to be modified) 
CurrentDb.Execute "UPDATE GroupVolunteers " & _ 
     " SET Group=" & Me.txtGroup & _ 
      ", leader='" & Me.cboLeader & "'" & _ 
    ", name='" & Me.txtName & "'" & _ 
      ", email='" & Me.txtEmail & "'" & _ 
    ", phone='" & Me.txtPhone & "'" & _ 
    ", EmergencyContact='" & Me.txtEmergencyContact & "'" & _ 
      ", EmergencyNumber='" & Me.txtEmergencyNumber & "'" & _ 
      ", NumberVolunteers ='" & Me.txtNumberVolunteers & "'" & _ 
      " WHERE RegNumber = " & Me.txtRegNumber.Tag 
+0

寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。你能描述你想要达到的行为并给出一些有关错误的细节吗? –

+0

@SteveClanton与我的其他声明我不断收到此错误。运行时错误'3144':UPDATE语句中的语法错误,它强调了我的整个else语句 – anecessa

回答

3
" VALUES(" & Me.txtGroup & "', ... 

认为这是怎么回事在你的语句结束的:

VALUES(<Me.txtGroup>', ... 

换句话说,你要么缺少开引号一个字符类型的列,或者对于一个数字类型的列有太多的字符。它应该是一个:

" VALUES('" & Me.txtGroup & "', ... // for character-type column 
" VALUES(" & Me.txtGroup & ", ... // for numeric-type column 

这应该固定在这两个代码块你insert,你可能还需要检查第二个代码块update为好。它在group列中没有引号,如果它是数字类型则可以,但如果是字符类型则可能不会。

+0

只是想确保我明白你在说什么。所以它应该是“值(”“&Me.txtGroup&”',....... – anecessa

+0

@anecessa,对不起,应该已经更清楚了,看到添加/删除引用的更新(您先前的评论似乎有一个空间是不正确的) – paxdiablo

+0

谢谢我感谢你的帮助,但现在我收到我的其他声明中的错误,但我想我现在可能会错过开始报价,现在我再看一遍。 – anecessa