Bonjour

Je reviens avec une question éternelle mais qui persiste.

Je crée une nouvelle ligne dans ma base de données et INSERT TO est méchant. Il m'indique que j'ai une erreur de synthaxe (facile...).

Alors j'ai éclusé les forums, vérifié le nom de mes champs Access, rien.

Je ne passe pratiquement pas par SQL (sauf pour le select initial), je n'ai pas paramétré le dataset ni stocké quoi que ce soit. Je n'utilise que NewRow et Add.

La procédure incriminée est NouvelleFiche, mais je vous mets le reste.

Si cela inspire...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
 
Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ajd = System.DateTime.Now
        'Dim configpath As String
        'Dim mypath As String
 
        configpath = Application.StartupPath & "\Path.txt"
        Try
            If File.Exists(configpath) = False Then
                OpenFileDialog1.FileName = "Path.txt"
                OpenFileDialog1.DefaultExt = ".txt"
                If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                    OpenFileDialog1.RestoreDirectory = False
                    OpenFileDialog1.InitialDirectory = "..\"
                    configpath = OpenFileDialog1.FileName
                Else : Exit Sub
                End If
            End If
            mypath = File.ReadAllText(configpath)
 
            If mypath = "" Then
                OpenFileDialog1.FileName = "db1.mdb"
                OpenFileDialog1.DefaultExt = ".mdb"
                If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                    OpenFileDialog1.RestoreDirectory = True
                    mypath = OpenFileDialog1.FileName
                    File.WriteAllText(configpath, mypath)
                Else : Exit Sub
                End If
            End If
 
 
        Catch ex As Exception
 
 
        End Try
 
        strConn = "Provider=Microsoft.jet.OLEDB.4.0;Data Source= " & mypath & ";"
        objetConnection = New OleDbConnection()
        objetConnection.ConnectionString = strConn
        objetConnection.Open()
        Requetes()
        objetDataAdapter.Dispose()
        objetConnection.Close()
 
        Dim res = From elt In tablectrl
                 Where elt.Field(Of String)("Début CJ") < ajd And elt.Field(Of String)("Fin") > ajd
                 Select elt
 
        For Each p In res
            ListBox1.Items.Add(p("Nom").ToString & " " & p("Prénom").ToString)
        Next
end sub
Public Sub nouvelle_fiche()
 
        If IsDate(Contacts_Form.Deb_DateTimePicker.Text) = False Then
            MsgBox("Saisissez une date de début de CJ valide")
            Exit Sub
        End If
 
        If IsDate(Contacts_Form.Fin_DateTimePicker.Text) = False Then
            MsgBox("Saisissez une date de fin de CJ valide")
            Exit Sub
        End If
 
        If IsNumeric(Contacts_Form.Freq_TextBox.Text) = False Then
            MsgBox("Saisissez une fréquence de côntrôle valide")
            Exit Sub
        End If
 
        Dim maLigne As DataRow = monDataset.Tables("Fiche").NewRow
 
        maLigne("Nom") = Contacts_Form.Nom_TextBox.Text
        maLigne("Date_de_naissance") = CType(Contacts_Form.DateN_TextBox.Text, Date)
        maLigne("Prénom") = Contacts_Form.Prenom_TextBox.Text
        maLigne("Adresse") = Contacts_Form.Adresse_TextBox.Text
        maLigne("Ville") = Contacts_Form.Ville_TextBox.Text
        maLigne("Code postal") = Contacts_Form.CP_TextBox.Text
        maLigne("Début CJ") = CType(Contacts_Form.Deb_DateTimePicker.Text, Date)
        maLigne("Fin") = CType(Contacts_Form.Fin_DateTimePicker.Text, Date)
        maLigne("Fréquence") = CType(Contacts_Form.Freq_TextBox.Text, Double)
        maLigne("Motif suivi") = Contacts_Form.Motif_TextBox.Text
        maLigne("Personne référente") = Contacts_Form.Ref_TextBox.Text
        maLigne("Mail") = Contacts_Form.Mail_TextBox.Text
        maLigne("Téléphone") = Contacts_Form.Tel_TextBox.Text
 
        monDataset.Tables("Fiche").Rows.Add(maLigne)
 
        'Try
        objetCommand = New OleDbCommand(strSql)
        objetCommand.Connection() = objetConnection
        objetDataAdapter.SelectCommand = objetCommand
        objetCommandBuilder = New OleDb.OleDbCommandBuilder(objetDataAdapter)
        objetDataAdapter.InsertCommand = objetCommandBuilder.GetInsertCommand
        objetDataAdapter.Update(monDataset, "Fiche")
        monDataset.Clear()
        objetDataAdapter.Fill(monDataset, "Fiche")
        tableFiches = monDataset.Tables("Fiche")
        'Catch ex As Exception
        'End Try
 
    End Sub
    Public Sub Requetes()
 
        strSql = "SELECT * FROM Fiche"
        objetCommand = New OleDbCommand(strSql)
        objetDataAdapter = New OleDbDataAdapter(objetCommand)
        objetCommand.Connection() = objetConnection
        objetDataAdapter.Fill(monDataset, "Fiche")
        tableFiches = monDataset.Tables("Fiche")
 
        strSql2 = "SELECT * FROM Suivi"
        objetCommand = New OleDbCommand(strSql2)
        objetDataAdapter = New OleDbDataAdapter(objetCommand)
        objetCommand.Connection() = objetConnection
        objetDataAdapter.Fill(monDataset, "Suivi")
        tableFiches = monDataset.Tables("Suivi")
 
    End Sub