ms访问错误3078无法找到表或查询

时间:2017-05-20 04:44:47

标签: vba ms-access access-vba ms-access-2010

提前感谢大家,我使用 vba MS Access 2016 来处理餐馆的数据库。 我需要打开一个表来获取一个记录,这是一个表名,然后我需要打开它,它有点凌乱,但我想我已经拥有它,直到我开始得到 3078 错误。 (顺便说一句,我刚刚开始使用此项目的访问权限,因此可能是一个简单的语法错误,我不会看到)

不幸的是,我正在以不合理的方式制作数据库,因此它不是安静地保持一致或格式良好,而且用西班牙语的一半是英语的一半然而我确定表的名称是正确的,存在。如果我将查询放入访问而不是vba并使用名称而不是变量,它可以正常工作。这是代码。

Sub QRventas()
    Dim ventas As DAO.Recordset
    Dim qrv As String

    'Query daily sales
    qrv = (SELECT menus.id, menus.descripcion, Sum(Nz(ComandasD.cantidad)) AS Total FROM ~~long and ugly but working query)

    Set ventas = CurrentDb.OpenRecordset(qrv)
    Dim receta As DAO.Recordset
    Dim qrr As String

    Do While Not ventas.EOF

        'QR recipes
        ventas.MoveNext

        qrr = "SELECT ID, Ingredientes, Cantidad FROM [" & ventas(1) & "] GROUP BY ID, Ingredientes, Cantidad;" '<- Error Here

        Set receta = CurrentDb.OpenRecordset(qrr)  '<- Complains here 3078
        Do While Not receta.EOF
            'Updating Storage

             CurrentDb.Execute "UPDATE Almacen " _
                                & "SET Cantidad_almacenada = Cantidad_almacenada - (cantidad * Total) " _
                                & "WHERE ID = " & receta(1) & ";"
            receta.MoveNext
        Loop

    Loop

End Sub

3 个答案:

答案 0 :(得分:1)

可能&#39;菲尔兹&#39;缺少:

qrr = "SELECT ID, Ingredientes, Cantidad FROM [" & ventas.Fields(1) & "]...

答案 1 :(得分:1)

如果Access抱怨表格不在那里,那就不是。

或者,具体使用字段的 Value 属性。

因此,插入一个调试行并研究它应该找到哪个表名:

    'QR recipes
    ventas.MoveNext
    Debug.Print "[" & ventas(1) & "]"

    qrr = "SELECT ID, Ingredientes, Cantidad FROM [" & ventas(1).Value & "] GROUP BY ID, Ingredientes, Cantidad;" '<- Error Here

答案 2 :(得分:0)

我尝试了人们在这里发布但他们没有运气的答案,然后我做了“紧凑和修复”,问题就消失了...... 再次感谢大家。