Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme ado connexion

1 réponse
Avatar
Cugel
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.

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

'3. Données d'identification de l'organisateur
sTitreOrg = cboTitre.Text
sNomOrg = txtNomOrganisateur.Text
sPrenOrg = txtPrenomOrganisateur.Text
sAdressOrg = txtAdresseOrganisateur.Text
sCPostalOrg = txtCPOrganisateur.Text
sVilleOrg = txtVilleOrganisateur.Text
sTelOrg = txtTelOrganisateur.Text
sMailOrg = txtMailOrganisateur.Text

'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

myRecordset!IDInfo = iIndex
myRecordset!NomInfo = sNomTournoi
myRecordset!LieuInfo = sLieuTournoi
myRecordset!DateInfo = sDateTournoi
myRecordset!TypeInfo = sTypeTournoi
myRecordset!ArbitreInfo = sArbitre

'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....


merci d'avance

1 réponse

Avatar
Ledev
"Cugel" a écrit dans le message de
news:bfc10v$ara$
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.

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

'3. Données d'identification de l'organisateur
sTitreOrg = cboTitre.Text
sNomOrg = txtNomOrganisateur.Text
sPrenOrg = txtPrenomOrganisateur.Text
sAdressOrg = txtAdresseOrganisateur.Text
sCPostalOrg = txtCPOrganisateur.Text
sVilleOrg = txtVilleOrganisateur.Text
sTelOrg = txtTelOrganisateur.Text
sMailOrg = txtMailOrganisateur.Text

'Ouverture de la connexion au fichier DB



MyConnexion n'est pas délarer.

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

myRecordset!IDInfo = iIndex
myRecordset!NomInfo = sNomTournoi
myRecordset!LieuInfo = sLieuTournoi
myRecordset!DateInfo = sDateTournoi
myRecordset!TypeInfo = sTypeTournoi
myRecordset!ArbitreInfo = sArbitre

'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