【发布时间】:2014-07-28 07:31:13
【问题描述】:
我有一个包含两个不同表的数据库。
**call_code** activity
call_id activity_id
maintCall_plan activity_desc
maintCall_unplanned contact_person
creditCalls day
newBussCalls activity_date
phoneCalls revenue
time
我无法调试我的代码。问题是insert into 语句中的语法错误,并且突出显示了conConnection.Execute。这是我的代码 sn-p:
Private Sub Command1_Click()
Dim conConnection As ADODB.Connection
Dim cmdCommand As New ADODB.Command
Dim strSql As String
Set conConnection = New ADODB.Connection
conConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\" & "db_weekActRep.mdb;Mode=Read|Write"
conConnection.CursorLocation = adUseClient
conConnection.Open
sqlStr = "INSERT INTO activity(activity_desc, contact_person, day, activity_date, revenue, time) VALUES ("
sqlStr = sqlStr & "'" & txtAct8am.Text & "',"
sqlStr = sqlStr & "'" & txtComp8am.Text & "',"
sqlStr = sqlStr & "'" & Label31.Caption & "',"
sqlStr = sqlStr & "'" & Label20.Caption & "',"
sqlStr = sqlStr & "'" & txtRev8am.Text & "',"
sqlStr = sqlStr & "'" & Label9.Caption & "')"
conConnection.Execute sqlStr
Select Case Combo1.ListIndex
Case 0
sqlStr = "INSERT INTO call_code(maintCall_plan) VALUES ("
sqlStr = sqlStr & "'" & "1" & "')"
conConnection.Execute sqlStr
Case 1
sqlStr = "INSERT INTO call_code(maintCall_unplanned) VALUES ("
sqlStr = sqlStr & "'" & "2" & "')"
conConnection.Execute sqlStr
Case 2
sqlStr = "INSERT INTO call_code(creditCalls) VALUES ("
sqlStr = sqlStr & "'" & "3" & "')"
conConnection.Execute sqlStr
Case 3
sqlStr = "INSERT INTO call_code(newBussCalls) VALUES ("
sqlStr = sqlStr & "'" & "4" & "')"
conConnection.Execute sqlStr
Case 4
sqlStr = "INSERT INTO call_code(phoneCalls) VALUES ("
sqlStr = sqlStr & "'" & "5" & "')"
conConnection.Execute sqlStr
End Select
End Sub
另外,我想知道是否可以使用一个点击事件或按钮将数据插入到两个不同的表中?如果是,我做对了吗?
顺便说一句,我没有为活动表添加activity_id,因为它是自动递增的。与 call_code 表的 call_id 相同。任何帮助将不胜感激。
【问题讨论】:
-
请不要转发问题。如果您有更改或新信息,您可以对现有问题进行修改。
-
不要像这样连接你的 SQL。您正在向SQL Injection 敞开心扉。请改用参数。
-
@Oded 先生的“不连接”是什么意思?是否可以在一个点击事件中有多个插入语句?