使用VBA和DAO将备忘录从Excel 2010转移到Access 2010

我试图将文本从Excel 2010传输到Access 2010.由于正常文本的256个字符的限制,我想使用备忘录。 现在,经过几个小时的search,我仍然无法解决我的问题。

更具体地说:这段代码读取数据(在这种情况下是文本)并将其写入Access数据库。 由于文本的限制,我需要在Access数据库中使用备注字段,但在调整了所有内容后,我找不到这个语句(sSQL)的数据types。

我想要做的就是改变下面的代码:(略微减less到相关位)

Dim ws As DAO.Workspace Dim db As DAO.Database Dim sDb As String Dim sSQL As String Dim qdf As QueryDef sDb = ActiveWorkbook.Path & "\DataBase.accdb" Set ws = DBEngine.Workspaces(0) Set db = ws.OpenDatabase(sDb) sSQL = "Parameters" _ & " SomeText Text; " _ <<== Here << == & "INSERT INTO IT_Ticker (SomeText)" _ & " Values ([ SomeText ])" Set qdf = db.CreateQueryDef("", sSQL) qdf.Parameters!SomeText = Worksheets("SomeSheet").Range("A1") qdf.Execute dbFailOnError Debug.Print qdf.RecordsAffected qdf.Close db.Close ws.Close Set qdf = Nothing Set db = Nothing Set ws = Nothing 

我正在考虑用“备忘录”replace“文本”,但它不工作。 我也尝试了“LongText”和“String”。

我假设你正在附加数据IT_Ticker的表已经存在。 你没有具体说明你正在使用的Parameters ,但下面的代码工作得很好。

 Option Explicit Sub test() Dim ws As DAO.Workspace Dim db As DAO.Database Dim sDb As String Dim sSQL As String Dim qdf As QueryDef Dim userName As String Dim longText As String sDb = ActiveWorkbook.Path & "\DataBase2.accdb" Set ws = DBEngine.Workspaces(0) Set db = ws.OpenDatabase(sDb) 'sSQL = "Parameters" _ '& " SomeText Text; " _ <<== Here << == '& "INSERT INTO IT_Ticker (SomeText)" _ '& " Values ([ SomeText ])" userName = Cells(2, 2).Value longText = Cells(3, 2).Value sSQL = "INSERT INTO IT_Ticker (UserName, ReallyLongText) Values (""" & _ userName & """,""" & longText & """)" Set qdf = db.CreateQueryDef("", sSQL) 'qdf.Parameters!SomeText = Worksheets("SomeSheet").Range("A1") qdf.Execute dbFailOnError Debug.Print qdf.RecordsAffected qdf.Close db.Close ws.Close Set qdf = Nothing Set db = Nothing Set ws = Nothing End Sub