我希望能够将已输入的文本字符串拆分到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
答案 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")
其中每个值对应表中的一列。