Erreur -2147217900(80040e14)

Signaler
Messages postés
40
Date d'inscription
samedi 27 mars 2010
Statut
Membre
Dernière intervention
11 juin 2010
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
salut je suis entrain de réaliser mon projet j'ai fait une bouton d'ajout qui me permettre de remplir une base accés 2007 mais il m'affiche ce type d'erreur svp qui peut m'aider car j'ai besoin d'aide le plus vite possible pour terminer mon projet merci d'avance et voila le code
code de boutton
Private Sub Command3_Click()
If Txtlicence(0).Text "" And Txtplainte(1).Text "" And Txtbande(3).Text = "" And Txtbrouillé(3).Text = "" And Txtfreqbrouillage(2).Text = "" And Txtsitebrouillage(4).Text = "" _
And Txtrappel(10).Text = "" Then
MsgBox "Veuillez Remplir Les Cases", vbInformation, "Information"
Else
Dim licence As String: Dim dat As Date: Dim bande As Integer: Dim brouillé As String: Dim freqbrouillage As Integer: Dim sitebrouillage As String: Dim rappel As Date

licence = Txtlicence(0):
dat = Txtplainte(1):
bande = Txtbande(3):
brouillé = Txtbrouillé(3):
freqbrouillage = Txtfreqbrouillage(2):
sitebrouillage = Txtsitebrouillage(4):
rappel = Txtrappel(10):


Call ajoutDossier(licence, dat, bande, brouillé, freqbrouillage, sitebrouillage, rappel)

Command3.Enabled = False
MsgBox "Vos données sont enregistrer", vbOKOnly
End If
End Sub
et voile le module
Dim Dossier As New ADODB.Connection
Option Explicit

Public Sub Etablire_Connection()
Dossier.Provider = "Microsoft.Jet.OLEDB.4.0"
Dossier.ConnectionString = "C:\Documents and Settings\Administrateur\Bureau\gestion_brouillage\anf.mdb"
Dossier.Open
End Sub

Public Sub Fermer_Connection()
Dossier.Close
End Sub
Public Sub ajoutDossier(ByVal licence As Integer, ByVal dat As Date, ByVal bande As Integer, ByVal brouillé As String, ByVal freqbrouillage As Integer, _
ByVal sitebrouillage As String, ByVal rappel As String)
'Procédure permettant d'inserrer dans les tables tous les renseignements
Call Etablire_Connection

Dim Reqsql As New ADODB.Command
Dim Pilote As New ADODB.Recordset
Reqsql.ActiveConnection = Dossier
Reqsql.CommandText = "Insert into Dossier Values(" & licence & ",'" & dat & "','" & bande & "','" & brouillé & "','" & freqbrouillage & "','" & sitebrouillage & "','" & rappel & "', & " ',#" & CStr(dexp) & "#)"
Set Dossier = Reqsql.Execute
Call Fermer_Connection

End Sub
merci une autre fois

5 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
;ets des OR plutot que des AND la :


If Txtlicence(0).Text "" And Txtplainte(1).Text "" And Txtbande(3).Text = "" And Txtbrouillé(3).Text = "" And Txtfreqbrouillage(2).Text = "" And Txtsitebrouillage(4).Text = "" _
And Txtrappel(10).Text = "" Then


pour ton erreurm c'est "juste" du au fait qu'il manque le nom des champs dans ta requete INSERT INTO


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Embrouillé tout ça.
Dans ta requète, or mis qu'il manque la liste des champs, il y a aussi un truc bizarre à la fin :
..."','" & rappel & "', & " ',#" & CStr(dexp) & "#)"
-1- D'où sort ta variable dexp ?
-2- En imaginant la tête de la String ainsi fabriquée (avec rappel toto et dexp kiki) :
...','toto', & ',#kiki#)
.............^^^^
Ici, ca ne passe pas

D'autre part, un Insert Into peut se faire beaucoup plus simplement sans objet Command :
maConnexion.Execute "ma requete SQL"
c'est tout

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
40
Date d'inscription
samedi 27 mars 2010
Statut
Membre
Dernière intervention
11 juin 2010

bonsoir alors quesque je peut faire j'ai essayer beaucoup des codes mais sa fonctionne pas je veux juste remplir une table dossier accès 2007 a partitr vb a travers des text box
et j'essayer cette insttruction et sa foctionne pas
* "maConnexion.Execute "ma requete SQL"
merci d'avance et si tu peut m'aider a trouver la solution
Messages postés
40
Date d'inscription
samedi 27 mars 2010
Statut
Membre
Dernière intervention
11 juin 2010

bonsoir j'ai deja remplacer le and par or mais il faut que je déclare
licence= [N° de licence]
dat=[Date de plainte]
.........
mais c ou exact dans le module
Dim Dossier As New ADODB.Connection
Option Explicit

Public Sub Etablire_Connection()
Dossier.Provider = "Microsoft.Jet.OLEDB.4.0"
Dossier.ConnectionString = "C:\Documents and Settings\Administrateur\Bureau\gestion_brouillage\anf.mdb"
Dossier.Open
End Sub

Public Sub Fermer_Connection()
Dossier.Close
End Sub
Public Sub ajoutDossier(ByVal licence As Integer, ByVal dat As Date, ByVal bande As Integer, ByVal brouillé As String, ByVal freqbrouillage As Integer, _
ByVal sitebrouillage As String, ByVal rappel As String)
'Procédure permettant d'inserrer dans les tables tous les renseignements
Call Etablire_Connection

Dim Reqsql As New ADODB.Command
Dim Pilote As New ADODB.Recordset
Reqsql.ActiveConnection = Dossier
Reqsql.CommandText = "Insert into Dossier Values(" & [N° de licence] & ",'" & [date de plainte] & "','" & bande & "','" & brouillé & "','" & [frequence de brouillage] & "','" & [site_brouillage] & "','" & [Date de rappel] & "', & " ',#" & CStr(dexp) & "#)"
Set Dossier = Reqsql.Execute
Call Fermer_Connection
end sub
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
mets des OR plutot que des AND la :


If Txtlicence(0).Text "" And Txtplainte(1).Text "" And Txtbande(3).Text = "" And Txtbrouillé(3).Text = "" And Txtfreqbrouillage(2).Text = "" And Txtsitebrouillage(4).Text = "" _
And Txtrappel(10).Text = "" Then


tu reponds

bonsoir j'ai deja remplacer le and par or mais il faut que je déclare
licence= [N° de licence]
dat=[Date de plainte]


ce que je te disais, c'est que ton test qui sert a afficher un MsgBox est FAUX !
il ne s'affichera que si tu oublies de remplir TOUS LES TEXTBOX...
Ce qui n'est, j'imagine pas le but recherche...

concernant ta requete SQL, elle est toujours fausse...
il te manque encore la liste des champs...

observe un modele simple :

INSERT INTO TableClients ([Nom], [Prenom]) VALUES('DUPONT', 'Jean')

On indique la liste des champs, suivie de la liste des valeurs a donner a ces champs, en respectant l'ordre...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp