J'ai un pur problème de connexion ADO, et comme c'est la première fois que
je travaille avec cette méthode, je ne vois pas où est l'erreur.
Voici le code :
'---------------------------------------------------------------------------
---
' Module : frmTournData
' Date : 18/07/2003
' Auteur : Cugel
' Objectif : Déclaration des variables
'---------------------------------------------------------------------------
---
Option Explicit 'Les variables doivent être
déclarées
Dim sPairingMethod As String 'Méthode d'appariement retenue
Dim iGC As Integer 'Valeur de GC pour appariement
Hendriks
Dim iSC As Integer 'Valeur de SC pour appariement
Hendriks
Dim sNomTournoi As String 'Dénomination du tournoi
Dim sLieuTournoi As String 'Lieu du tournoi
Dim sDateTournoi As String 'Date du tournoi
Dim sTypeTournoi As String 'Type de tournoi
Dim sArbitre As String 'Arbitre principal
Dim sTitreOrg As String 'Formule de politesse
Dim sNomOrg As String 'Nom de l'organisateur
Dim sPrenOrg As String 'Prénom de l'organisateur
Dim sAdressOrg As String 'Adresse de l'organisateur
Dim sCPostalOrg As String 'Code postal de l'organisateur
Dim sVilleOrg As String 'Ville de l'organisateur
Dim sTelOrg As String 'Téléphone de l'organisateur
Dim sMailOrg As String 'eMail de l'organisateur
Dim iIndex As Integer 'Index de la table INFO
Dim sMessage As String 'messages à l'utilisateur
Dim ErrorCode As Integer 'Code d'erreur retourné
Dim Obj As Object 'Référence à un controle sur la
feuille
Private Sub cmdOK_Click()
'---------------------------------------------------------------------------
---
' Procedure : cmdOK_Click
' Date : 18/07/2003
' Auteur : Vincent Crévieaux
' Objectif : Validation des données
'---------------------------------------------------------------------------
---
'
'On vérifie que tous les champs ont été complétés
For Each Obj In frmTournData
If TypeOf Obj Is TextBox Or TypeOf Obj Is ComboBox Then
If Obj.Text = "" Then
ErrorCode = ErrorCode + Obj.Tag
End If
End If
Next
'Vérifie l'état de ErrorCode
If ErrorCode > 0 Then 'Alors au moins un champs n'a pas été encodé
sMessage = MsgBox( _
"Erreur !" & vbCrLf & vbCrLf & _
"Un ou plusieurs champs n'ont pas été encodés!" & vbCrLf & _
"Veuillez compléter.", vbExclamation, App.EXEName)
Exit Sub
Else
'Validation des données
'1. Données d'identification du tournoi
iIndex = 1
sNomTournoi = txtNomTournoi.Text
sLieuTournoi = txtLieuTournoi.Text
sDateTournoi = txtDateTournoi.Text
sTypeTournoi = cboTypTournoi.Text
sArbitre = txtArbitreTournoi.Text
'2. Données d'appariement
If sPairingMethod = "Hendriks" Then
iSC = SliderSC.Value
iGC = SliderGC.Value
Else
iSC = 0
iGC = 0
End If
'Ouverture de la connexion au fichier DB
Set myConnexion = New ADODB.Connection
myConnexion.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sTournament
myConnexion.Open
'On vérifie que l'ouverture de la connexion s'est bien passée
If myConnexion.State = adStateOpen Then
'Si la connexion est bien établie, on sauvegarde les données
Set myRecordset = New ADODB.Recordset
myRecordset.Open "SELECT * FROM INFOS", myConnexion, adOpenDynamic,
adLockOptimistic
On Error GoTo TransError
myConnexion.BeginTrans
myRecordset.AddNew
'Enregistrement des données de tournoi
'Enregistrement des données d'identification de l'organisateur
myRecordset!TitreOrg = sTitreOrg
myRecordset!NomOrg = sNomOrg
myRecordset!PrenOrg = sPrenOrg
myRecordset!AdresseOrg = sAdressOrg
myRecordset!CPostalOrg = sCPostalOrg
myRecordset!VilleOrg = sVilleOrg
myRecordset!TelOrg = sTelOrg
myRecordset!MailOrg = sMailOrg
'Enregistrement des données d'appariement et de ronde
myRecordset!PairingType = sPairingMethod
myRecordset!PairingSC = iSC
myRecordset!PairingGC = iGC
myRecordset!LastRound = 0
myRecordset.Update
'Ecriture de l'enregistrement
myConnexion.CommitTrans
myRecordset.Close
myConnexion.Close
sMessage = MsgBox("Données sauvegardées avec succès", vbInformation,
_
App.EXEName)
Unload frmTournData
Else
sMessage = MsgBox( _
"Impossible d'ouvrir le fichier en sortie !" & vbCrLf & _
"Les données ne peuvent pas être sauvegardées", vbExclamation)
myConnexion.Close
Exit Sub
End If
End If
TransError:
'Gestionnaire d'erreur pour la transaction
'Si une erreur survient, annuler la transaction et
'revenir à l'état initial du fichier
myConnexion.RollbackTrans 'On annule la transaction
myRecordset.Close 'On ferme le recordset
myConnexion.Close 'On ferme la connexion ADODB
MsgBox Err.Description 'Affichage de l'erreur
End Sub
sTournament contient le chemin d'accès et le nom de la base de données
(test.mdb)
Mon problème est le suivant : La base de données est vide au départ, et
l'ajout de l'enregistrement ne veux pas se faire.
Si vous trouvez l'erreur (ou les erreurs) pourriez-vous m'aider, passque là,
je sèche vraiment....
--- Option Explicit 'Les variables doivent être déclarées Dim sPairingMethod As String 'Méthode d'appariement retenue Dim iGC As Integer 'Valeur de GC pour appariement Hendriks Dim iSC As Integer 'Valeur de SC pour appariement Hendriks Dim sNomTournoi As String 'Dénomination du tournoi Dim sLieuTournoi As String 'Lieu du tournoi Dim sDateTournoi As String 'Date du tournoi Dim sTypeTournoi As String 'Type de tournoi Dim sArbitre As String 'Arbitre principal Dim sTitreOrg As String 'Formule de politesse Dim sNomOrg As String 'Nom de l'organisateur Dim sPrenOrg As String 'Prénom de l'organisateur Dim sAdressOrg As String 'Adresse de l'organisateur Dim sCPostalOrg As String 'Code postal de l'organisateur Dim sVilleOrg As String 'Ville de l'organisateur Dim sTelOrg As String 'Téléphone de l'organisateur Dim sMailOrg As String 'eMail de l'organisateur Dim iIndex As Integer 'Index de la table INFO Dim sMessage As String 'messages à l'utilisateur Dim ErrorCode As Integer 'Code d'erreur retourné Dim Obj As Object 'Référence à un controle sur la feuille
--- ' 'On vérifie que tous les champs ont été complétés For Each Obj In frmTournData If TypeOf Obj Is TextBox Or TypeOf Obj Is ComboBox Then If Obj.Text = "" Then ErrorCode = ErrorCode + Obj.Tag End If End If Next 'Vérifie l'état de ErrorCode If ErrorCode > 0 Then 'Alors au moins un champs n'a pas été encodé sMessage = MsgBox( _ "Erreur !" & vbCrLf & vbCrLf & _ "Un ou plusieurs champs n'ont pas été encodés!" & vbCrLf & _ "Veuillez compléter.", vbExclamation, App.EXEName) Exit Sub Else 'Validation des données '1. Données d'identification du tournoi iIndex = 1 sNomTournoi = txtNomTournoi.Text sLieuTournoi = txtLieuTournoi.Text sDateTournoi = txtDateTournoi.Text sTypeTournoi = cboTypTournoi.Text sArbitre = txtArbitreTournoi.Text
'2. Données d'appariement If sPairingMethod = "Hendriks" Then iSC = SliderSC.Value iGC = SliderGC.Value Else iSC = 0 iGC = 0 End If
Set myConnexion = New ADODB.Connection myConnexion.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sTournament myConnexion.Open 'On vérifie que l'ouverture de la connexion s'est bien passée If myConnexion.State = adStateOpen Then 'Si la connexion est bien établie, on sauvegarde les données Set myRecordset = New ADODB.Recordset
MyRecordset n'est pas déclarer non plus
myRecordset.Open "SELECT * FROM INFOS", myConnexion,
adOpenDynamic,
adLockOptimistic
On Error GoTo TransError myConnexion.BeginTrans myRecordset.AddNew 'Enregistrement des données de tournoi
'Enregistrement des données d'identification de l'organisateur myRecordset!TitreOrg = sTitreOrg myRecordset!NomOrg = sNomOrg myRecordset!PrenOrg = sPrenOrg myRecordset!AdresseOrg = sAdressOrg myRecordset!CPostalOrg = sCPostalOrg myRecordset!VilleOrg = sVilleOrg myRecordset!TelOrg = sTelOrg myRecordset!MailOrg = sMailOrg 'Enregistrement des données d'appariement et de ronde myRecordset!PairingType = sPairingMethod myRecordset!PairingSC = iSC myRecordset!PairingGC = iGC myRecordset!LastRound = 0 myRecordset.Update 'Ecriture de l'enregistrement myConnexion.CommitTrans myRecordset.Close myConnexion.Close sMessage = MsgBox("Données sauvegardées avec succès",
vbInformation,
_ App.EXEName) Unload frmTournData
Eux, là, si j'ai bien suivit ton code, il cours tous droit au TransError :-D, tu devrai mettre un ExitSub En faite, il faut préciser que le Unload n'arrête pas la sub pour autant, elle ne s'appliquerai qu'a la fin, or le code arrive au TransError, ce qui n'est pas bon.
Else sMessage = MsgBox( _ "Impossible d'ouvrir le fichier en sortie !" & vbCrLf & _ "Les données ne peuvent pas être sauvegardées", vbExclamation) myConnexion.Close Exit Sub End If End If
TransError: 'Gestionnaire d'erreur pour la transaction 'Si une erreur survient, annuler la transaction et 'revenir à l'état initial du fichier myConnexion.RollbackTrans 'On annule la transaction myRecordset.Close 'On ferme le recordset myConnexion.Close 'On ferme la connexion ADODB MsgBox Err.Description 'Affichage de l'erreur
End Sub
sTournament contient le chemin d'accès et le nom de la base de données (test.mdb)
Mon problème est le suivant : La base de données est vide au départ, et l'ajout de l'enregistrement ne veux pas se faire.
Voilà, a par les erreur que je t'ai cité, je n'en ait trouvée aucune autre(à l'oeuil, si sa ne marche toujours pas aprés celle là, je testerai un peu plus en détail mais là, je vais mangé ;-)).
a+
Si vous trouvez l'erreur (ou les erreurs) pourriez-vous m'aider, passque
là,
je sèche vraiment....
merci d'avance
"Cugel" <vcrevieaux@brutele.be> a écrit dans le message de
news:bfc10v$ara$1@news.brutele.be...
Salut à la liste,
J'ai un pur problème de connexion ADO, et comme c'est la première fois que
je travaille avec cette méthode, je ne vois pas où est l'erreur.
---
Option Explicit 'Les variables doivent être
déclarées
Dim sPairingMethod As String 'Méthode d'appariement retenue
Dim iGC As Integer 'Valeur de GC pour appariement
Hendriks
Dim iSC As Integer 'Valeur de SC pour appariement
Hendriks
Dim sNomTournoi As String 'Dénomination du tournoi
Dim sLieuTournoi As String 'Lieu du tournoi
Dim sDateTournoi As String 'Date du tournoi
Dim sTypeTournoi As String 'Type de tournoi
Dim sArbitre As String 'Arbitre principal
Dim sTitreOrg As String 'Formule de politesse
Dim sNomOrg As String 'Nom de l'organisateur
Dim sPrenOrg As String 'Prénom de l'organisateur
Dim sAdressOrg As String 'Adresse de l'organisateur
Dim sCPostalOrg As String 'Code postal de l'organisateur
Dim sVilleOrg As String 'Ville de l'organisateur
Dim sTelOrg As String 'Téléphone de l'organisateur
Dim sMailOrg As String 'eMail de l'organisateur
Dim iIndex As Integer 'Index de la table INFO
Dim sMessage As String 'messages à l'utilisateur
Dim ErrorCode As Integer 'Code d'erreur retourné
Dim Obj As Object 'Référence à un controle sur la
feuille
---
'
'On vérifie que tous les champs ont été complétés
For Each Obj In frmTournData
If TypeOf Obj Is TextBox Or TypeOf Obj Is ComboBox Then
If Obj.Text = "" Then
ErrorCode = ErrorCode + Obj.Tag
End If
End If
Next
'Vérifie l'état de ErrorCode
If ErrorCode > 0 Then 'Alors au moins un champs n'a pas été encodé
sMessage = MsgBox( _
"Erreur !" & vbCrLf & vbCrLf & _
"Un ou plusieurs champs n'ont pas été encodés!" & vbCrLf & _
"Veuillez compléter.", vbExclamation, App.EXEName)
Exit Sub
Else
'Validation des données
'1. Données d'identification du tournoi
iIndex = 1
sNomTournoi = txtNomTournoi.Text
sLieuTournoi = txtLieuTournoi.Text
sDateTournoi = txtDateTournoi.Text
sTypeTournoi = cboTypTournoi.Text
sArbitre = txtArbitreTournoi.Text
'2. Données d'appariement
If sPairingMethod = "Hendriks" Then
iSC = SliderSC.Value
iGC = SliderGC.Value
Else
iSC = 0
iGC = 0
End If
Set myConnexion = New ADODB.Connection
myConnexion.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sTournament
myConnexion.Open
'On vérifie que l'ouverture de la connexion s'est bien passée
If myConnexion.State = adStateOpen Then
'Si la connexion est bien établie, on sauvegarde les données
Set myRecordset = New ADODB.Recordset
MyRecordset n'est pas déclarer non plus
myRecordset.Open "SELECT * FROM INFOS", myConnexion,
adOpenDynamic,
adLockOptimistic
On Error GoTo TransError
myConnexion.BeginTrans
myRecordset.AddNew
'Enregistrement des données de tournoi
'Enregistrement des données d'identification de l'organisateur
myRecordset!TitreOrg = sTitreOrg
myRecordset!NomOrg = sNomOrg
myRecordset!PrenOrg = sPrenOrg
myRecordset!AdresseOrg = sAdressOrg
myRecordset!CPostalOrg = sCPostalOrg
myRecordset!VilleOrg = sVilleOrg
myRecordset!TelOrg = sTelOrg
myRecordset!MailOrg = sMailOrg
'Enregistrement des données d'appariement et de ronde
myRecordset!PairingType = sPairingMethod
myRecordset!PairingSC = iSC
myRecordset!PairingGC = iGC
myRecordset!LastRound = 0
myRecordset.Update
'Ecriture de l'enregistrement
myConnexion.CommitTrans
myRecordset.Close
myConnexion.Close
sMessage = MsgBox("Données sauvegardées avec succès",
vbInformation,
_
App.EXEName)
Unload frmTournData
Eux, là, si j'ai bien suivit ton code, il cours tous droit au TransError
:-D, tu devrai mettre un ExitSub
En faite, il faut préciser que le Unload n'arrête pas la sub pour autant,
elle ne s'appliquerai qu'a la fin, or le code arrive au TransError, ce qui
n'est pas bon.
Else
sMessage = MsgBox( _
"Impossible d'ouvrir le fichier en sortie !" & vbCrLf & _
"Les données ne peuvent pas être sauvegardées", vbExclamation)
myConnexion.Close
Exit Sub
End If
End If
TransError:
'Gestionnaire d'erreur pour la transaction
'Si une erreur survient, annuler la transaction et
'revenir à l'état initial du fichier
myConnexion.RollbackTrans 'On annule la transaction
myRecordset.Close 'On ferme le recordset
myConnexion.Close 'On ferme la connexion ADODB
MsgBox Err.Description 'Affichage de l'erreur
End Sub
sTournament contient le chemin d'accès et le nom de la base de données
(test.mdb)
Mon problème est le suivant : La base de données est vide au départ, et
l'ajout de l'enregistrement ne veux pas se faire.
Voilà, a par les erreur que je t'ai cité, je n'en ait trouvée aucune autre(à
l'oeuil, si sa ne marche toujours pas aprés celle là, je testerai un peu
plus en détail mais là, je vais mangé ;-)).
a+
Si vous trouvez l'erreur (ou les erreurs) pourriez-vous m'aider, passque
--- Option Explicit 'Les variables doivent être déclarées Dim sPairingMethod As String 'Méthode d'appariement retenue Dim iGC As Integer 'Valeur de GC pour appariement Hendriks Dim iSC As Integer 'Valeur de SC pour appariement Hendriks Dim sNomTournoi As String 'Dénomination du tournoi Dim sLieuTournoi As String 'Lieu du tournoi Dim sDateTournoi As String 'Date du tournoi Dim sTypeTournoi As String 'Type de tournoi Dim sArbitre As String 'Arbitre principal Dim sTitreOrg As String 'Formule de politesse Dim sNomOrg As String 'Nom de l'organisateur Dim sPrenOrg As String 'Prénom de l'organisateur Dim sAdressOrg As String 'Adresse de l'organisateur Dim sCPostalOrg As String 'Code postal de l'organisateur Dim sVilleOrg As String 'Ville de l'organisateur Dim sTelOrg As String 'Téléphone de l'organisateur Dim sMailOrg As String 'eMail de l'organisateur Dim iIndex As Integer 'Index de la table INFO Dim sMessage As String 'messages à l'utilisateur Dim ErrorCode As Integer 'Code d'erreur retourné Dim Obj As Object 'Référence à un controle sur la feuille
--- ' 'On vérifie que tous les champs ont été complétés For Each Obj In frmTournData If TypeOf Obj Is TextBox Or TypeOf Obj Is ComboBox Then If Obj.Text = "" Then ErrorCode = ErrorCode + Obj.Tag End If End If Next 'Vérifie l'état de ErrorCode If ErrorCode > 0 Then 'Alors au moins un champs n'a pas été encodé sMessage = MsgBox( _ "Erreur !" & vbCrLf & vbCrLf & _ "Un ou plusieurs champs n'ont pas été encodés!" & vbCrLf & _ "Veuillez compléter.", vbExclamation, App.EXEName) Exit Sub Else 'Validation des données '1. Données d'identification du tournoi iIndex = 1 sNomTournoi = txtNomTournoi.Text sLieuTournoi = txtLieuTournoi.Text sDateTournoi = txtDateTournoi.Text sTypeTournoi = cboTypTournoi.Text sArbitre = txtArbitreTournoi.Text
'2. Données d'appariement If sPairingMethod = "Hendriks" Then iSC = SliderSC.Value iGC = SliderGC.Value Else iSC = 0 iGC = 0 End If
Set myConnexion = New ADODB.Connection myConnexion.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sTournament myConnexion.Open 'On vérifie que l'ouverture de la connexion s'est bien passée If myConnexion.State = adStateOpen Then 'Si la connexion est bien établie, on sauvegarde les données Set myRecordset = New ADODB.Recordset
MyRecordset n'est pas déclarer non plus
myRecordset.Open "SELECT * FROM INFOS", myConnexion,
adOpenDynamic,
adLockOptimistic
On Error GoTo TransError myConnexion.BeginTrans myRecordset.AddNew 'Enregistrement des données de tournoi
'Enregistrement des données d'identification de l'organisateur myRecordset!TitreOrg = sTitreOrg myRecordset!NomOrg = sNomOrg myRecordset!PrenOrg = sPrenOrg myRecordset!AdresseOrg = sAdressOrg myRecordset!CPostalOrg = sCPostalOrg myRecordset!VilleOrg = sVilleOrg myRecordset!TelOrg = sTelOrg myRecordset!MailOrg = sMailOrg 'Enregistrement des données d'appariement et de ronde myRecordset!PairingType = sPairingMethod myRecordset!PairingSC = iSC myRecordset!PairingGC = iGC myRecordset!LastRound = 0 myRecordset.Update 'Ecriture de l'enregistrement myConnexion.CommitTrans myRecordset.Close myConnexion.Close sMessage = MsgBox("Données sauvegardées avec succès",
vbInformation,
_ App.EXEName) Unload frmTournData
Eux, là, si j'ai bien suivit ton code, il cours tous droit au TransError :-D, tu devrai mettre un ExitSub En faite, il faut préciser que le Unload n'arrête pas la sub pour autant, elle ne s'appliquerai qu'a la fin, or le code arrive au TransError, ce qui n'est pas bon.
Else sMessage = MsgBox( _ "Impossible d'ouvrir le fichier en sortie !" & vbCrLf & _ "Les données ne peuvent pas être sauvegardées", vbExclamation) myConnexion.Close Exit Sub End If End If
TransError: 'Gestionnaire d'erreur pour la transaction 'Si une erreur survient, annuler la transaction et 'revenir à l'état initial du fichier myConnexion.RollbackTrans 'On annule la transaction myRecordset.Close 'On ferme le recordset myConnexion.Close 'On ferme la connexion ADODB MsgBox Err.Description 'Affichage de l'erreur
End Sub
sTournament contient le chemin d'accès et le nom de la base de données (test.mdb)
Mon problème est le suivant : La base de données est vide au départ, et l'ajout de l'enregistrement ne veux pas se faire.
Voilà, a par les erreur que je t'ai cité, je n'en ait trouvée aucune autre(à l'oeuil, si sa ne marche toujours pas aprés celle là, je testerai un peu plus en détail mais là, je vais mangé ;-)).
a+
Si vous trouvez l'erreur (ou les erreurs) pourriez-vous m'aider, passque