我试图创建一个新的表格,其中源文件中的字段名称是一个变量。例如,在源数据ID
领域可能是“ID”或“HB_REF_NO”,出生日期可能是DoB
,Date of Birth
或Date_of_birth
在Access VBA中,找到字段名称,在列表中插入列
我做了搜索各种字段名称和返回列码他们在,但我挣扎着从这些列中的数据转移到一个表
下面是代码,请原谅它无疑野蛮的方法...
Private Sub cmdCompare_Click()
Set db = CurrentDb()
Set RecordSet1 = db.OpenRecordset("OriginalData")
Dim Fld As DAO.Field
Dim FldArray() As String
Dim i As Integer
Dim j As Integer
Dim SQLCreate As String
Dim SQLInsert As String
Dim s As Integer
Dim d As Integer
Dim b As Integer
Dim p As Integer
j = RecordSet1.Fields.Count - 1
ReDim FldArray(j)
'Assigns field names to the array
For Each Fld In RecordSet1.Fields
FldArray(i) = Fld.Name
i = i + 1
Next
For i = 0 To j
If FldArray(i) = "Surname" Then
s = i
Else
End If
Next
For i = 0 To j
If FldArray(i) = "HB_REF_NO" Then
d = i
Else
End If
Next
For i = 0 To j
If FldArray(i) = "NC_DATE_OF_BIRTH" Then
b = i
Else
End If
Next
For i = 0 To j
If FldArray(i) = "POSTCODE" Then
p = i
End If
Next
SQLCreate = "CREATE TABLE OriginalComp" & _
"(ID varchar(255), Surname varchar(255), DoB varchar(255), Postcode varchar(255))"
DoCmd.RunSQL SQLCreate
SQLInsert = "INSERT INTO OriginalComp (ID, Surname, DoB, Postcode) " & _
"VALUES ('" & FldArray(d) & "','" & FldArray(s) & "','" & FldArray(b) & "','" & FldArray(p) & "');"
DoCmd.RunSQL SQLInsert
End Sub
此查询是否显示要插入'OriginalComp'的数据? - >'SELECT HB_REF_NO AS ID,姓,NC_DATE_OF_BIRTH AS DoB,POSTCODE FROM OriginalData' – HansUp
我不知道如何检查。我之所以这样做的原因是因为这些文件通常会有不同的字段名称,所以一旦我得到这个排序,我将需要改变它,以便它搜索“出生日期”和“DoB “,例如 –
在Access查询设计器中创建一个新的查询。切换到SQL视图。粘贴在'SELECT'语句中并运行查询。 – HansUp