Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/03/2011, 18h53   #1
Membre régulier
 
Inscription : janvier 2011
Messages : 310
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 310
Points : 76
Points : 76
Par défaut Erreur conversion de type surr combo box

Bonjour,

J'ai un formulaire contenant 3 champs indépendants dont un combobox.
Dans l' event d'un bouton "enregistrer / actualiser" du formulaire j'ai mis le code vba suivant

[code]Private Sub BtnEnregistrerPostedeTresorerie_Click()

If IsNull(Me.NumPostedetresorerie) = True Then

DoCmd.RunSQL "insert into [postes de trésorerie](Code,Libellé,Banque) values ('" & Me.Code & "',""" & Me.Libellé & """,'" & Me.Banque & "')"

Else

DoCmd.RunSQL "update [Postes de trésorerie] set [Postes de trésorerie].banque= forms![postes de trésorerie]![banque],[Postes de trésorerie].code= forms![postes de trésorerie]!
Code :
1
2
3
4
5
6
7
8
9
,[postes de trésorerie].Libellé= forms![postes de trésorerie]![libellé] where [postes de trésorerie].[NumPosteTrésorerie]= forms![postes de trésorerie]![NumPostedeTresorerie]"
 
MsgBox "Modification effectuée"
 
End If
 
Me.ListePostestrésorerie.Requery
 
End Sub
Si je cherche à actualiser les champs d'un enregistrement existant access me signale "erreur de conversion de type", après avoir décortiqué le problème il s'avère que c'est le combobox "Banque" qui pose problème quand on veut actualiser.

Si je ne reclique et sélectionne pas de nouveau une banque dans le combobox le message d'erreur apparait.

Le dit combobox est alimenté par le code suivant provenant d'une listbox déroulante (voir photo)

Code :
1
2
3
4
5
6
7
8
Private Sub ListePostesTrésorerie_AfterUpdate()
 
Me.NumPostedetresorerie = Me.ListePostestrésorerie.Column(0)
Me.Code = Me.ListePostestrésorerie.Column(1)
Me.Libellé = Me.ListePostestrésorerie.Column(2)
Me.Banque = Me.ListePostestrésorerie.Column(3)
 
End Sub
Sachant que le combobox "banque" a une valeur numérique en entier long dans la première colonne qui sert d' ID dans la realation avec la table "Banques".

Nota : La requête Insert marche parfaitement

Une idée de ce qui peut provoquer cette erreur ?
Images attachées
Type de fichier : jpg Postes de trésorerie.jpg (119,1 Ko, 7 affichages)
clickandgo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 09h13   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour,

Ta question est difficile à lire ! Cela explique sans doute le nombre de réponses.

Je te suggère de poster une BDD compatible Access2000 avec le formulaire (et ses tables) qui te cause problème.
Cela m'aidera à comprendre et, peut-être, à t'aider...
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 12h45   #3
Membre régulier
 
Inscription : janvier 2011
Messages : 310
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 310
Points : 76
Points : 76
Disons pour être plus clair que cette erreur apparait lorsque l'on veut actualiser l'un des 2 champs sans toucher à la valeur du combobox .

Par contre si je resélectionne une valeur dans le combobox avant de cliquer sur le bouton d'enregistrement là tout marche nickel...

A n'y rien comprendre ...
clickandgo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 14h42   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,
Citation:
Envoyé par clickandgo Voir le message
Code :
1
2
3
4
5
6
7
8
Private Sub ListePostesTrésorerie_AfterUpdate()
 
Me.NumPostedetresorerie = Me.ListePostestrésorerie.Column(0)
Me.Code = Me.ListePostestrésorerie.Column(1)
Me.Libellé = Me.ListePostestrésorerie.Column(2)
Me.Banque = Me.ListePostestrésorerie.Column(3)
 
End Sub
Sachant que le combobox "banque" a une valeur numérique en entier long dans la première colonne qui sert d' ID dans la realation avec la table "Banques".
Pour que ça fonctionne il faut que Me.ListePostestrésorerie.Column(3) ait une correspondance dans la colonne liée de la comboBox Banque.
Est-ce que Me.ListePostestrésorerie.Column(3) est bien un ID de la première colonne de la comboBox Banques ?

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 17h59   #5
Membre régulier
 
Inscription : janvier 2011
Messages : 310
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 310
Points : 76
Points : 76
Aaaaarrrrgggghhhhh ! ça venait de là !!!!!!!!

Bien joué ! j'ai pensé à tout vérifier sauf la liste déroulante qui comme elle m'affichait ce que je voulais ne paraissait pas suspecte !!!

Bravo et merci à toi !!!
clickandgo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h59.


 
 
 
 
Partenaires

Hébergement Web