如何在MS Access表中拆分字符串和存储

时间:2015-12-23 20:36:12

标签: string vba ms-access split

我希望能够将已输入的文本字符串拆分到MS Access表单上的文本框中,并将拆分字符串存储为同一字段下的单独记录。这是我到目前为止的代码,但我在各个角落都遇到了问题。我对此很新,但一直在快速学习。任何帮助表示赞赏。

以下是我想要完成的内容:如果我在文本框中输入以下文本(“这是一个句子”)并单击“提交”。我希望彼此将这些单词存储为共同字段下的单个记录。看起来很简单,但它引起了一些令人头疼的问题。

Private Sub Submit_Click()

    Dim SetDBConnection As ADODB.Connection
    Set SetDBConnection = CurrentProject.Connection

    Dim strInsertRecord As String

    Dim strNewPhrase As String
    Dim strStorePhrase As String

    strNewPhrase = textPhrase
    strStorePhrase = Split(NewPhrase)

    strInsertRecord = "INSERT INTO [FieldSplice] (words) VALUES (" & strStorePhrase & ")"
    SetDBConnection.Execute strInsertRecord

    textPhrase.Value = Null
End Sub

1 个答案:

答案 0 :(得分:4)

我有点不清楚为什么你有ADODB连接......这是连接到外部数据库吗?如果是这样,这是有道理的,但是你缺少一些代码来使插入工作正常。

如果这只是一个内部(本机)访问表,那么我认为你不需要这些。下面是一个简单的示例,说明如何获取字符串,将其拆分为单词(基于空格),然后将其插入表中:

Dim textPhrase As String
Dim words() As String
Dim i As Integer

textPhrase = "This is a test"
words = Split(textPhrase, " ")

sql = "parameters P1 text; INSERT INTO [FieldSplice] (words) VALUES ([P1])"

Set query = CurrentDb.CreateQueryDef("FsInsert", sql)

For i = LBound(words) To UBound(words)
  query.Parameters("P1").Value = words(i)
  query.Execute
Next i

CurrentDb.QueryDefs.Delete ("FsInsert")

另一个感兴趣的注意事项 - 您不需要每次都声明插入内容。您可以设置参数,为参数赋值并多次执行insert命令。这包含在我上面的例子中。

您的代码试图说:

insert into [table] (field) values ("value1", "value2", "value3")

你无法做到。这必须以三个插入完成,除非您的数据库支持数组插入(例如,Oracle)。

多个字段的工作方式如下:

insert into [table] (field1, field2) values ("value1", "value2")

其中每个值对应表中的一列。