我是新的Access VBA, 我的方案是我想从另一个表中选择表名
(In same access db (table name as parameter)).
基于从参数中选取的表名,我需要从同一个表(Parmater)中选择le列。然后我想检查参数中的不同文件。
根据参数表中的不同le (4 in my case)
,我想将记录追加到另一个表(ULAE).
附加语句将为insert into
,其中where as LE from parameter table
。
Public Sub LinkTables()
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim stringsql As String
Set rs1 = CurrentDb.OpenRecordset("Table Valued Parameter")
While Not rs1.EOF = True
MsgBox rs1![Table_name]
tblname = rs1!Table_name
stringsql = ("SELECT COUNT(LE) from [Table Valued Parameter]")
MsgBox tblname
DoCmd.SetWarnings False
DoCmd.RunSQL ("SELECT COUNT(LE) FROM [Table Valued Parameter]")
'Next i
DoCmd.SetWarnings True
NEW_TBLNAME = "t_00_unearned_unincepted_alloc_basis_table"
'MsgBox NEW_TBLNAME
'CurrentDb.TableDefs.Append New_tblname
'MsgBox rs1![le]
'Set TD = Nothing
'Dim stringsql As String
DoCmd.SetWarnings False
'stringsql = ("SELECT COUNT(LE) from " & tblname)
'DoCmd.RunSQL (stringsql,False)lename&
cnt = CurrentDb.TableDefs.Count - 1
MsgBox cnt
For i = 0 To cnt
lename = rs1![le]
MsgBox lename
DoCmd.RunSQL ("INSERT INTO " & NEW_TBLNAME & " SELECT * FROM " & tblname & " where le = '" & lename& "')
Next i
DoCmd.SetWarnings True
rs1.MoveNext
Wend
代码给出错误2342。 CMDSQL需要sql语句。
有人可以建议如何实施它
感谢您的帮助
答案 0 :(得分:0)
这是完成创建功能。
Function LinkTables()
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim stringsql As String
Set rs1 = CurrentDb.OpenRecordset("Table Valued Parameter")
While Not rs1.EOF = True
'MsgBox rs1![Table_name]
'MsgBox rs1![le]
tblname = rs1!Table_name
legal_entity = rs1.Fields(1)
NEW_TBLNAME = rs1![destination_table]
DoCmd.SetWarnings False
DoCmd.RunSQL ("INSERT INTO " & NEW_TBLNAME & " SELECT * FROM " & tblname & " where le = '" & legal_entity & "'")
DoCmd.SetWarnings True
rs1.MoveNext
Wend
MsgBox "Tables Refreshed"
End Function