更新链接表' ???'失败

时间:2018-04-25 10:06:54

标签: sql vb6

我收到错误'运行时错误3157:ODBC - 在链接表上更新'' ???失败'当我尝试通过VB6代码更新表,但更新通过MS Access正常工作。

我使用MS Access作为SQL 2008的前端。

表架构是:

CREATE TABLE [varijable] (
    [rabat_racuni] FLOAT DEFAULT 0,
    [rabat_diskont] FLOAT DEFAULT 0,
    [napomena_racuni] NTEXT,
    [napomena_predracuni] NTEXT,
    [napomena_diskont] NTEXT,
    [napomena_revers] NTEXT,
    [putanja_artikli] NVARCHAR(225),
    [rab] FLOAT DEFAULT 0,
    [prodaja] INTEGER DEFAULT 0,
    [profaktura] INTEGER DEFAULT 0,
    [faktura] INTEGER DEFAULT 0,
    [revers] INTEGER DEFAULT 0,
    [dan_azur] DATETIME,
    [status] SMALLINT,
    [oznaka_goriva] NVARCHAR(50),
    [naknada_goriva] FLOAT,
    [sifra_naknade] NVARCHAR(255),
    [server_baza] NTEXT,
    [an] [INTEGER] IDENTITY NOT NULL,
    CONSTRAINT [varijable$an] PRIMARY KEY ([an])
);
GO

代码更新:

 'odredi broj
 Data28.RecordSource = "select * from varijable"
 Data28.Refresh
  'ispravi brojeve u datoteci rednih brojeva
Data28.Recordset.Edit
If Combo4.ListIndex = 0 Then
 br = Data28.Recordset.Fields("prodaja") + 1
Data28.Recordset.Fields("prodaja") = br
End If
If Combo4.ListIndex = 1 Then
br = Data28.Recordset.Fields("profaktura") + 1
Data28.Recordset.Fields("profaktura") = br
End If
If Combo4.ListIndex = 2 Then
br = Data28.Recordset.Fields("faktura") + 1
Data28.Recordset.Fields("faktura") = br
End If
If Combo4.ListIndex = 3 Then
 br = Data28.Recordset.Fields("revers") + 1
Data28.Recordset.Fields("revers") = br
End If
''on error GoTo greska
Data28.Recordset.Update <----- Throws error 3157

为什么VB6在没有表名的情况下给我错误,而是给出了&#39; ???&#39;

1 个答案:

答案 0 :(得分:1)

3157通常是由规则违规引起的。 这可能意味着:

  1. ODBC数据库是只读的,或者与ODBC连接关联的帐户没有更新该数据库中数据的权限。

  2. ODBC连接失败(连接字符串错误)

  3. 我首先检查连接是否适用于任何查询,如果是,是否有任何创建语句通过VB工作?