Access中的qdf.Execute dbFailOnError时的运行时错误'3049'

时间:2015-06-19 02:50:10

标签: sql ms-access

我正在尝试将新数据提交到各种数据库中,当我在一段时间后不断提交数据时,它会向我显示此错误:

enter image description here

提交语句如下所示:

sql "INSERT INTO  Bond Values("","HK0000122334","CNH",8447.5357732363,8447.5357732400,0.0000000037,109913,"01Jun15")". 

数据库也达到2.09Gb。我的代码看起来像这样:

Sub commit(dbName As String, tableName As String, commitString As String, reportDate As String)
    Dim ws As DAO.Workspace
    Dim db As DAO.Database
    Dim sSQL As String
    Dim qdf As QueryDef

    sDb = dbName & ".accdb"
    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase(sDb)
    sqlStatementList = Split(commitString, ";")

    For Each sqlStatement In sqlStatementList
        sqlStatement = Replace(sqlStatement, ")" & vbLf, reportDate)

        If InStr(tableName, "EIS") <> 0 Then
            sqlStatement = Replace(sqlStatement, "EIS", tableName)
        End If

        sSQL = sqlStatement
        Set qdf = db.CreateQueryDef("", sSQL)
        qdf.Execute dbFailOnError
    Next sqlStatement
End Sub

到目前为止我尝试过:

1)

Set qdf = Nothing 
Set db = Nothing

这没有帮助。仍然是同一个问题。

2)试图删除该特定数据库并继续提交其余数据库,但仍然遇到同样的问题。

需要一些解决此问题的指导。

1 个答案:

答案 0 :(得分:1)

maximum size of an Access database is 2GB(链接适用于2010年,但2013年似乎相同)。所以是的,当数据库变大时,你的插入会失败。您可以选择将数据分成另一个数据库文件或切换到SQL Server或其他一些数据库类型。