Excel VBA将数组variables插入到访问中的单个字段中

在我的项目中,我试图将excel表格中的无限制条目保存到数据库(访问)中。 我正在尝试使用vba来这样做。 但是,因为我不知道条目会有多长,我不能在数据库中创build这么多的字段来适应未知数量的条目。 我不能将一个数组variables插入表中的一个字段。 我怎样才能做到这一点?

说我有下面。

Dim SN(100) As String SN(0)=123 'value of each entry SN(1)=2412 'so on and so many entries 

然后在SQL语句中,

 "INSERT INTO [TableName] ([FieldName]) Values (SN)" 

它会说运行时错误“13”types不匹配。

有没有办法数据库字段可以接受一个列表或数组作为数据types? 所以当我调出数据时,我可以使用索引来调用列表中的variables?

MS Access没有这样的数据types,像string,boolean,long这样的更原始的types。 但是可以考虑使用Join单个string来Join数组中的所有项,并将该string保存到数据库表中。 然后根据需要使用Split将其拉回到数组中:

 Sub ArrayIntoSQL() Dim SN(100) As String, TN() As String Dim SNstr As String, SN(0) = 123 'value of each entry' SN(1) = 2412 SNstr = Join(SN, "|") ' PIPE DELIMITER ' '123|2412

_

' strSQL = "INSERT INTO [TableName] ([FieldName]) Values ('" & SNstr & "')" … End Sub Sub ArrayOutofSQL() Dim SN() As String Dim SNstr As String strSQL = "SELECT [FieldName] FROM [TableName]" … Do While Not rst.EOF SN() = Split(rst!FieldName, "|") rst.MoveNext Loop … End Sub

由于数组项可能会超出Access 短文本数据types的255字符限制,请使用没有声明限制的长文本types(以前称为备忘录 )。


然而对于最佳实践,宽表(多列)和存储对象(如字段中的数组)比长表(多行)和链接对象更昂贵。 所以简单地保存数据:

 For Each item in SN strSQL = "INSERT INTO [TableName] ([FieldName]) Values (" & item & ")" ... Next item 

当然,用IDPersonDateID保存值!