Ms access 查询语法混乱
对于我正在使用VB inside Access DB编写的这段代码,我的语法有点混乱Ms access 查询语法混乱,ms-access,vba,Ms Access,Vba,对于我正在使用VB inside Access DB编写的这段代码,我的语法有点混乱 Public Sub () Dim dbs As DAO.Database Dim TrainingID As Integer Dim EmployeeIDTb1 As Integer Dim JobIDTb1 As Integer Dim CompetencyTb1 As String Dim DateApprovedTb1 As String Dim InsertStr As String
Public Sub ()
Dim dbs As DAO.Database
Dim TrainingID As Integer
Dim EmployeeIDTb1 As Integer
Dim JobIDTb1 As Integer
Dim CompetencyTb1 As String
Dim DateApprovedTb1 As String
Dim InsertStr As String
TrainingID = 100
Set dbs = CurrentDb
Set dbs1 = CurrentDb.OpenRecordset("SELECT * FROM Table1")
'Do Until dbs1.Fields("ID").Value <> Null
'set values
EmployeeIDTbl1 = dbs1.Fields("EmployeeID").Value
'JobIDTb1 = dbs1.Fields("JobID").Value
'CompetencyTb1 = dbs1.Fields("Competency").Value
'DateApprovedTb1 = dbs1.Fields("DateApproved").Value
'Set Insert String
InsertStr = "INSERT INTO TrainingList (EmployeeID.[Value]) Values(1) Where TrainingID = TrainingID;"
dbs.Execute InsertStr
TrainingID = TrainingID + 1
'dbs1.MoveNext
'Loop
dbs.Close
Set dbs = Nothing
End Sub
我试图将
EmployeeIDTbl1
作为一个参数传递到Value(EmployeeIDTbl1)
中,但我看不出里面适合什么语法。注意EmployeeIDTbl1
返回一个值=1您的插入SQL应该是:
InsertStr=“INSERT INTO TrainingList(EmployeeID.[Value])值(“&EmployeeIDTbl1&”)其中TrainingID=“&TrainingID以下是我编写的解决方案,用于处理在SharePoint中为多个值字段插入Access 2013记录的问题 第一步: 创建与SharePoint列表具有相同列名的本地表。 (对于这段代码,可以说它被称为“Table1”) 第二步:使用Excel将数据导入到创建的表中 第三步:统计表中记录的数量 第四步:执行InitializeRecords函数
Option Compare Database
Public Sub InitalizeRecords()
Dim dbs As DAO.Database
Dim rs As DAO.Recordset
Dim BufferVal As Integer
Dim RecordSize As Integer
Set dbs = CurrentDb
Set dbs2 = CurrentDb.OpenRecordset("SELECT * FROM 'The Table You're Using'")
'Intialize Variables'
BufferVal = 1
RecordSize = 'Enter Amount of Records to be Inserted'
For i = 1 To RecordSize
'Insert Buffer Records'
dbs2.AddNew
dbs2("Title").Value = BufferVal
BufferVal = BufferVal + 1
dbs2.Update
Next
End Sub
Dim DateApprovedTbl1 As String
Dim InsertStr As String
Dim InsertStr2 As String
Dim InsertStr3 As String
Dim InsertStr4 As String
Dim BufferVal As Integer
Dim MaxRecords As Integer
Set dbs = CurrentDb
Set dbs1 = CurrentDb.OpenRecordset("SELECT * FROM Table1")
Set dbs2 = CurrentDb.OpenRecordset("SELECT * FROM TrainingList")
'Intialize Training ID Value'
TrainingID = dbs2.Fields("TrainingID").Value
Do Until dbs1.Fields("ID") <> Null
'set values'
EmployeeIDTbl1 = dbs1.Fields("EmployeeID").Value
JobIDTbl1 = dbs1.Fields("JobID").Value
CompetencyTbl1 = dbs1.Fields("Competency").Value
DateApprovedTbl1 = dbs1.Fields("DateApproved").Value
'Set Insert String'
InsertStr = "INSERT INTO TrainingList (JobID.[Value]) Values (" & JobIDTbl1 & ")
WHERE TrainingID = " & TrainingID & " "
dbs.Execute InsertStr
InsertStr2 = "INSERT INTO TrainingList (EmployeeID.[Value]) Values (" &
EmployeeIDTbl1 & ")
WHERE TrainingID = " & TrainingID & " "
dbs.Execute InsertStr2
'Update Competency And DateApproved'
InsertStr3 = "Update TrainingList SET Competency = '" & CompetencyTbl1 & " ' WHERE
TrainingID = " & TrainingID & "; "
dbs.Execute InsertStr3
InsertStr4 = "Update TrainingList SET DateApproved = '" & DateApprovedTbl1 & " ' WHERE
TrainingID = " & TrainingID & "; "
dbs.Execute InsertStr4
TrainingID = TrainingID + 1
BuffVal = BuffVal + 1
dbs1.MoveNext
Loop
dbs.Close
Set dbs = Nothing
End Sub
此函数初始化表并将空记录插入共享点中的表中,以填充主键值,在本例中为“TrainingID”
步骤5:执行InsertRecords函数
Option Compare Database
Public Sub InitalizeRecords()
Dim dbs As DAO.Database
Dim rs As DAO.Recordset
Dim BufferVal As Integer
Dim RecordSize As Integer
Set dbs = CurrentDb
Set dbs2 = CurrentDb.OpenRecordset("SELECT * FROM 'The Table You're Using'")
'Intialize Variables'
BufferVal = 1
RecordSize = 'Enter Amount of Records to be Inserted'
For i = 1 To RecordSize
'Insert Buffer Records'
dbs2.AddNew
dbs2("Title").Value = BufferVal
BufferVal = BufferVal + 1
dbs2.Update
Next
End Sub
Dim DateApprovedTbl1 As String
Dim InsertStr As String
Dim InsertStr2 As String
Dim InsertStr3 As String
Dim InsertStr4 As String
Dim BufferVal As Integer
Dim MaxRecords As Integer
Set dbs = CurrentDb
Set dbs1 = CurrentDb.OpenRecordset("SELECT * FROM Table1")
Set dbs2 = CurrentDb.OpenRecordset("SELECT * FROM TrainingList")
'Intialize Training ID Value'
TrainingID = dbs2.Fields("TrainingID").Value
Do Until dbs1.Fields("ID") <> Null
'set values'
EmployeeIDTbl1 = dbs1.Fields("EmployeeID").Value
JobIDTbl1 = dbs1.Fields("JobID").Value
CompetencyTbl1 = dbs1.Fields("Competency").Value
DateApprovedTbl1 = dbs1.Fields("DateApproved").Value
'Set Insert String'
InsertStr = "INSERT INTO TrainingList (JobID.[Value]) Values (" & JobIDTbl1 & ")
WHERE TrainingID = " & TrainingID & " "
dbs.Execute InsertStr
InsertStr2 = "INSERT INTO TrainingList (EmployeeID.[Value]) Values (" &
EmployeeIDTbl1 & ")
WHERE TrainingID = " & TrainingID & " "
dbs.Execute InsertStr2
'Update Competency And DateApproved'
InsertStr3 = "Update TrainingList SET Competency = '" & CompetencyTbl1 & " ' WHERE
TrainingID = " & TrainingID & "; "
dbs.Execute InsertStr3
InsertStr4 = "Update TrainingList SET DateApproved = '" & DateApprovedTbl1 & " ' WHERE
TrainingID = " & TrainingID & "; "
dbs.Execute InsertStr4
TrainingID = TrainingID + 1
BuffVal = BuffVal + 1
dbs1.MoveNext
Loop
dbs.Close
Set dbs = Nothing
End Sub
我真的希望使用此解决方案,因为仅使用某些工具来绕过SharePoint内部禁用的工具是令人沮丧的。管理员是否可以将此问题的标题更改为“插入具有多个Access和SharePoint字段的记录”