Requete d'insertion

saadatou Messages postés 15 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 15 août 2006 - 14 août 2006 à 09:11
saadatou Messages postés 15 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 15 août 2006 - 15 août 2006 à 12:52
Bonjour tout le monde
Voila j'ai écris une requête d'insertion qui quand je saisi les données et que je valide ,m'affiche :type de donnée incompatible.Les données sont de type entier et texte.Quand je saisi par exemple le nombre 1 partout ça marche mais quand j'insers du texte et du numerique ca se complique.J'aimerais avoir une idée de comment contourner ce probleme.
Merci de m'aider. 

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 août 2006 à 09:43
Salut
Difficile de te répondre avec aussi peu d'élément ...
Est-ce une erreur VB ou une erreur SQL ?
Rappel de la norme dans la syntaxe de ta requète SQL :
Si le type de champ (*) est :
- Texte : Il faut encadrer les données avec des guillemets simples : "... Values ('mon texte à insérer')"
- Date : L'encadrement est le dièse : " ... Values (#01/01/2006#)"
- Si est numérique, pas d'encadrement : "... Values(32.57)"
(*) tel que déclaré dans ta DB

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
saadatou Messages postés 15 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 15 août 2006
14 août 2006 à 10:31
Bonjour
vous avez raison c'est vraiment très vague aussi voici mon code:



Private Sub Command3_Click()<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>





Set cn = New ADODB.Connection





Set rs = New ADODB.Recordset





Set cmd = New ADODB.Command





db = App.Path & "\disquette.mdb"





With cn





cn.Provider = "Microsoft.jet.oledb.4.0"





cn.ConnectionString = App.Path & "\disquette.mdb"





cn.Open





End With





On Error GoTo gesterr





Set rs = New ADODB.Recordset





Dim code_btr As String





Dim nbr_crp As Integer





Dim nbr_btr As Integer





Dim nbr_atr As Integer





Dim num_btr As Integer





Dim date_trans As String





Dim code_atr As String





Dim type_atr As String





Dim code_id_emetteur As String





Dim date_atr As String





Dim num_atr As Integer





Dim num_crp As Integer





Dim code_crp As String





Dim type_crp As Integer





Dim sens_oper As Integer




Dim nature_du_compte As Integer



Dim type_decla As Integer





Dim reglement As Integer





Dim nom_id As String





Dim code_id As String





Dim ref_int_id As String





Dim code_oper As String





Dim date_oper As String





Dim nbr_oper As Long





Dim nom_bene As String





Dim code_bene As String





Dim code_agent As String





Dim code_pays As String





Dim mont_oper As Long





Dim contre_valeur_cfa As Integer





Dim code_dev As String





Dim code_eco As String





Dim type_oper As String





sens_oper = Option11.Value





sens_oper = Option12.Value




nature_du_compte = Option9.Value


nature_du_compte = Option10.Value



type_decla = Option7.Value





type_decla = Option8.Value





reglement = Option5.Value





reglement = Option6.Value





type_crp = Option1.Value





type_crp = Option2.Value





type_crp = Option3.Value





type_crp = Option4.Value





num_crp = Text1.Text





code_crp = Text2.Text





nom_id = Text3.Text





code_id = Text4.Text





ref_int_id = Text5.Text





code_oper = Text6.Text





date_oper = Calendar1.Value





nbr_oper = Text8.Text





nom_bene = Text9.Text





code_bene = Text10.Text





code_agent = Text11.Text





code_pays = Text12.Text





mont_oper = Text13.Text





contre_valeur_cfa = Text14.Text




code_dev = Text15.Text



code_eco = Text16.Text





date_atr = Calendar2.Value





num_atr = Text18.Text





type_oper = Text19.Text





code_btr = Text21.Text





nbr_crp = Text24.Text





nbr_btr = Text22.Text





nbr_atr = Text20.Text





num_btr = Text23.Text





date_trans = Text25.Text





code_atr = Text7.Text





type_atr = Text17.Text





Text1.Text = ""





Text2.Text = ""





Text3.Text = ""





Text4.Text = ""





Text5.Text = ""





Text6.Text = ""





Calendar1.Value = ""





Text8.Text = ""





Text9.Text = ""





Text10.Text = ""





Text11.Text = ""





Text12.Text = ""





Text13.Text = ""





Text14.Text = ""





Text15.Text = ""





Text16.Text = ""





Text7.Text = ""





Text17.Text = ""





Text20.Text = ""





Text21.Text = ""





Text22.Text = ""





Text23.Text = ""





Text24.Text = ""





Text25.Text = ""





Calendar2.Value = ""





Text18.Text = ""





Text19.Text = ""





If Option1.Value Then





type_crp = 1





End If





If Option2.Value Then





type_crp = 2





End If





If Option3.Value Then





type_crp = 3





End If





If Option4.Value Then





type_crp = 4





End If





If Option5.Value Then





reglement = 1





End If





If Option6.Value Then





reglement = 2





End If





If Option7.Value Then





type_decla = 1





End If





If Option8.Value Then





type_decla = 2





End If





If Option9.Value Then




nature_du_compte = 1



End If





If Option10.Value Then




nature_du_compte = 2



End If





If Option11.Value Then





sens_oper = 1





End If





If Option12.Value Then





sens_oper = 2





End If





mont_oper = CLng(mont_oper)




contre_valeur_cfa = CLng(contre_valeur_cfa)


cmd = "insert into tabcrp(code_crp,type_crp,date_atr,num_atr,num_crp,code_id,ref_int_id,date_oper,reglement,type_decla,type_oper,nom_bene,code_bene,code_agent,code_pays,nature_du_compte,sens_oper,code_dev,mont_oper,contre_valeur_cfa,code_eco,nbr_oper,code_btr,nbr_btr,code_id_emetteur,nbr_crp,code_atr,type_atr,nbr_atr,date_trans,num_btr )" & _


"values('" & code_crp & "','" & type_crp & "','" & date_atr & "','" & num_atr & "','" & num_crp & "','" & code_id & "','" & ref_int_id & "','" & date_oper & "','" & reglement & "','" & type_decla & "','" & type_oper & "','" & nom_bene & "','" & code_bene & "','" & code_agent & "','" & code_pays & "','" & nature_du_compte & "','" & sens_oper & "','" & code_dev & "','" & mont_oper & "','" & contre_valeur_cfa & "','" & code_eco & "','" & nbr_oper & "','" & code_btr & "','" & nbr_btr & "','" & code_id_emetteur & "','" & nbr_crp & "','" & code_atr & "','" & type_atr & "','" & nbr_atr & "','" & date_trans & "','" & num_btr & "')"



cn.Execute cmd





cn.Close




gesterr:


MsgBox Err.Description


End Sub


Merci pour votre attention!!!
0
fiko81 Messages postés 381 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 5 septembre 2010 3
14 août 2006 à 13:14
Salut,

Ton code est assez lourd à lire par contre pour ton problème (cf message de jack) il faut bien prendre en compte la syntaxe d'une requete sql :


Par exemple pour ta requete tu as tout mis entre cote tes valeurs. Par exemple, num_atr et num_crp ne doivent pas être entre cote :
 ..." & num_crp & ", " & code_id & "

Petit conseil : essaye de respecter les espaces entre les valeurs : valeur1 + virgule + espace + valeur2



 Fiko ;-)

Proverbe chinois : Connaître son ignorance est la meilleur part de la connaissance./FONT>
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 août 2006 à 13:40
Re
En effet, tu as mis des " ' " partout : Il faut connaitre le type de chaque champ TEL QUE DECLARE DANS TA TABLE (texte, numérique ...) pour déterminer s'il faut ou pas des ' ou des #
- 1ere "With cn" : Il ne sert à rien puisque dans les lignes qui suivent, tu répètes cn.Provider ...
- 2ème "Set rs = New ..." : Inutile, tu l'as déjà fait au dessus
- Fin du code : Après le cn.Close, tu fais un MsgBox avec le code d'erreur.
  Dans les meilleurs cas, le code d'erreur sera 0 et ta MsgBox n'affichera rien de bien clair
   --> Ajoute un "Exit Sub" après ton "cn.Close"
- Fiko a raison : Ajoute des espaces là où il t'a dit, mais aussi après chaque parenthèse
  Exemple : dans ton code, tu fais une coupure VB apèrs Tabcrp et tu enchaines direct avec "(codecrp ..."
  Ce qui donne "   Insert Into Tabcrp(codecrp..."  --> Il se peut que l'interprèteur n'accepte pas --> Espace avant (
  Idem avant "Values"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
saadatou Messages postés 15 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 15 août 2006
14 août 2006 à 17:34
Bonsoir
Merci pour vos conseils  je ne suis pas sur mon pc mais dès ce soir je vais m'y mettre je vous donnerais la suite.
Merci beaucoup pour votre aide!






 
0
saadatou Messages postés 15 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 15 août 2006
15 août 2006 à 12:52
Bonjour
c'est enfin moi qui reviens,j'ai essayé ce que vous m'avez dit mais toujour j'ai ce message :type incompatible.
J'ai regardé au niveau de ma base de donnée mais toujours rien.
Merci beaucoup.
0
Rejoignez-nous