根据表中的记录数将数据附加到访问表中

时间:2014-09-03 06:40:30

标签: sql vba ms-access access-vba ms-access-2010

我是新的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语句。

有人可以建议如何实施它

感谢您的帮助

1 个答案:

答案 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