数据库不会通过用户窗体获得新值

Database won't get new values with a userform

我目前正在尝试创建一个用户表单,将其文本框的值插入到 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"

已更新

我试图添加一条记录,所以我做了一个插入,但是,我现在有一个 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) Driver][mysqld-5.5.59-MariaDB]You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

最终找到了问题。

输入的 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