База данных не получит новые значения с пользовательской формой - PullRequest
0 голосов
/ 24 сентября 2018

В настоящее время я пытаюсь создать пользовательскую форму, которая вставит значения его текстового поля в базу данных 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

Форма использования называется "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 голосов
/ 25 сентября 2018

Закончилось поиском проблемы.

Это было то, что ЗНАЧЕНИЯ были введены следующим образом

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
...