数据库不会通过用户表单获得新值

时间:2018-09-24 14:24:08

标签: sql excel vba mariadb adodb

我目前正在尝试创建一个用户表单,将其文本框的值插入到MariaDB数据库中。我没有任何类型的错误,但是,这些值根本不在基础中。

这是我的代码

Private Sub NouvelleEntree()

Dim rs As ADODB.Recordset
Dim Derligne As Integer, i As Integer
Dim Requete As String

    Set rs = New ADODB.Recordset
        ConnectionDB
'Stop
  Requete = "SELECT * FROM Produits_Beta"
  rs.Open Requete, oConnect, LockType:=adLockBatchOptimistic
                rs.Fields("Ref").Value = CreateProduct.NewRefProduct.Value
                rs.Fields("Nom").Value = CreateProduct.NewNomProduct.Value
                rs.Fields("Famille").Value = CreateProduct.NewFamilleProduct.Value
                rs.Fields("Marque").Value = CreateProduct.NewMarqueProduct.Value
                rs.Fields("Distributeur").Value = CreateProduct.NewDistribProduct.Value
                rs.Fields("Prix achat").Value = CreateProduct.NewPrixAchat.Value
                rs.Fields("Date Maj").Value = Now()
                rs.Fields("PrixVente").Value = CreateProduct.NewPrixVente.Value
                rs.Fields("Marge").Value = CreateProduct.NewPrixVente.Value - CreateProduct.NewPrixAchat.Value
                rs.Fields("DevisFournisseur").Value = CreateProduct.NewDevisFournisseur.Value
                rs.Fields("Image").Value = CreateProduct.NewImageProduct.Value
rs.Update
rs.Close

CreateProduct.Hide
SelectProduct.Hide

End Sub

您可能会猜到的useform称为“ CreateProduct”

已更新

我试图添加一条记录,所以我进行了一次INSERT操作,但是现在出现了SQL语法错误。

Private Sub NouvelleEntree()

Dim rs As ADODB.Recordset
Dim Derligne As Integer, i As Integer
Dim Requete As String
Dim guillemet As String

nop = ", "

    Set rs = New ADODB.Recordset
        ConnectionDB

  Requete = "INSERT INTO Produits_Beta (Ref, Nom, Famille, _
                 Marque, Distributeur, PrixAchat, DateMaj, _
                 PrixVente, Marge, DevisFournisseur, Image) " & _
    "VALUES (" & CreateProduct.NewRefProduct.Value & nop & _
             CreateProduct.NewNomProduct.Value & nop & _
             CreateProduct.NewFamilleProduct.Value & nop & _
             CreateProduct.NewFamilleProduct.Value & nop & _
             CreateProduct.NewMarqueProduct.Value & nop & _
             CreateProduct.NewDistribProduct.Value & nop & _
             CreateProduct.NewPrixAchat.Value & nop & _
             Date & nop & _
             CreateProduct.NewPrixVente.Value & nop & _
             CreateProduct.NewPrixVente.Value - CreateProduct.NewPrixAchat.Value & nop & _
             CreateProduct.NewDevisFournisseur.Value & nop & _
             CreateProduct.NewImageProduct.Value & ")"
  rs.Open Requete, oConnect, LockType:=adLockBatchOptimistic

rs.Update
rs.Close

CreateProduct.Hide
SelectProduct.Hide

End Sub

我有错误

  

[MySQL] [ODBC 5.3(a)驱动程序] [mysqld-5.5.59-MariaDB]您遇到错误   您的SQL语法;检查与您的MariaDB相对应的手册   在第1行的')'附近使用正确语法的服务器版本

1 个答案:

答案 0 :(得分:0)

最终找到了问题。

以下是输入的VALUES

INSERT INTO table1 VALUES (exemple1, exemple2)

,而必须将它们插入为

INSERT INTO table1 VALUES ('exemple1', 'exemple2')

这是我的最终代码:

Private Sub NouvelleEntree()

Dim rs As ADODB.Recordset
Dim Derligne As Integer, i As Integer
Dim Requete As String
Dim guillemet As String
Dim Temps As Date

nop = ", "
TruePrixVente = Replace(CreateProduct.NewPrixVente.Value, ".", ",") 'replace the dot a user can put by a coma so it doesn't mess with operations
TruePrixAchat = Replace(CreateProduct.NewPrixAchat.Value, ".", ",")


    Set rs = New ADODB.Recordset
        ConnectionDB

Requete = "INSERT INTO Produits_Beta (Ref, Nom, Famille, Marque, Distributeur, PrixAchat, DateMaj, PrixVente, Marge, DevisFournisseur, Image) " & _
    "VALUES (" & "'" & CreateProduct.NewRefProduct.Value & "'" & nop & _
             "'" & CreateProduct.NewNomProduct.Value & "'" & nop & _
             "'" & CreateProduct.NewFamilleProduct.Value & "'" & nop & _
             "'" & CreateProduct.NewMarqueProduct.Value & "'" & nop & _
             "'" & CreateProduct.NewDistribProduct.Value & "'" & nop & _
             "'" & TruePrixAchat & "'" & nop & _
             "CURDATE()" & nop & _
             "'" & TruePrixVente & "'" & nop & _
             "'" & TruePrixVente - TruePrixAchat & "'" & nop & _
             "'" & CreateProduct.NewDevisFournisseur.Value & "'" & nop & _
             "'" & CreateProduct.NewImageProduct.Value & "'" & ");"

rs.Open Requete, oConnect, LockType:=adLockBatchOptimistic