Bonjour,

Je désire faire une requête de sélection paramétrée dans une base de donnée access.

Je dois sûrement faire une erreur car mon datarow ne s'actualise pas.

Faut-il le vider après chaque utilisation ?
L'erreur se trouve-t-elle dans ma requête ?

Personnellement, je pencherais du côté du paramètre mais j'ignore où. C'est juste une intuition.

.NET est nouveau pour moi alors soyez indulgent avec mon code ^^

Ce code est donc exécuté lorsque le texte d'une ComboBox est mis à jour.
Il est sensé récupérer les données d'un client en particulier pour pouvoir afficher une fiche signalétique dans une TextBox en mode multiligne.

Je sais pour avoir vérifier que la valeur de mon paramètre est correcte mais la syntaxe de déclaration du paramètre n'est peut-être pas bonne. J'ai écrit cela après maintes recherches en mettant "bout à bout" des morceaux lus à droite et à gauche. Les explications que je trouve sont majoritairement pour sqlserver et non pour access.

Si quelqu'un possède un lien pour les requêtes paramétrées sous access, je lui en serait reconnaissant.

Voici donc le code :


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
sql = "SELECT * FROM TB_CLIENT WHERE NUMERO = ?"
        frmPrincipale.conn.Open()
        frmPrincipale.command.CommandText = sql
        frmPrincipale.command.Parameters.Add("id_client",
 OleDbType.Integer).Value = clients.Item(Me.cbClient.Text)
        dataAdapter = New OleDbDataAdapter(frmPrincipale.command)
        frmPrincipale.command.Connection() = frmPrincipale.conn
        dataAdapter.Fill(dataSet, "TB_CLIENT")
        dataTable = dataSet.Tables("TB_CLIENT")
        frmPrincipale.conn.Close()
        rowNumber = 0
        dataRow = dataTable.Rows(rowNumber)
 
        Dim infos As String
 
        infos = dataRow("TITRE") & " " & dataRow("NOM") & " " & dataRow
("PRENOM") & Chr(10) & dataRow("NUM")
        infos = infos & ", " & dataRow("RUE") & Chr(10) & dataRow("CP") & "
 " & dataRow("LOCALITE") & Chr(10)
        If Not (String.IsNullOrEmpty(dataRow("TELEPHONE"))) Then
            infos = infos & "TEL : " & dataRow("TELEPHONE")
        Else
            infos = infos & "FAX : " & dataRow("FAX")
        End If
        infos = infos & Chr(10) & "TVA : " & dataRow("TVA")
 
        Me.tbClient.Text = infos
 
        dataSet.Clear()
        dataTable.Clear()
Merci d'avance à tous ceux qui prendront la peine de me répondre.

Griftou.