Comment enregistrer la valeur lié à l'affichage de combobox?

dangelot05 Messages postés 29 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,
je suis à la recherche d'une aide sur l'enregistrement d'une valeur de combobox lié à un affichage c'est-à-dire j'affiche la description d'une clé étrangère mais lors de l'enregistrement c'est la clé étrangère qui sera enregistrée mais je parvient pas à le faire car en enregistrant il y a un message d'erreur m'informant que la conversion est impossible. Personnellement en décortiquant l'erreur, j'ai sû que le compilateur envois deux valeurs à savoir la clé étrangère et la description qui est un autre champ. Je vous fait part de mon code pour mieux m'aider:

Private sub form_load()
Dim req As String
Dim rcs As New ADODB.RecordSet
'Début d'appel du module de connexion
cbonum.clear
connexion.connexion
req="SELECT* from compteur"
rcs.Open req, connexion.cnx,AdOpenStatic
while Not rcs.EOF
cbonum.AddItem(rcs.fields(IdCompteur)& " " & rcs.fields("Description"))
wend
rcs.Close
End Sub

comme vous le voyez, sur l'affichage il n'y a aucun problème mais l'enregistrement m'est vraiment impossible; je vous prie de m'aider et merci d'avance à toute personne aimable qui m'aidera!

15 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    montrez le code de "l'enregistrement", puisque c'est celui-ci qui ne marche pas !!!!!
    0
  2. dangelot05 Messages postés 29 Statut Membre
     
    Merci de votre réponse et voici comment j'ai codé le bouton enregistrer:

    Private Sub enr_click()
    Dim req As String
    Dim rcs As New ADODB.RecordSet

    'Début de la connexion, j'ai utilisé un module appelé connexion
    call connexion.connexion
    req="INSERT INTO client(IdCompteur,Nom) values('"& Trim(cbonum.Text) &"','"& Trim(txtnom.Text) &"')"
    call executerrequate(req)

    Ceci est mon code d'enregistrement mais lorsque je clic sur le bouton enr, il y a une erreur qui s'affiche m'informant que c'est impossible de convertir le chaine de caractère et j'ai fini par comprendre que le compilateur est entrain d'envoyer deux valeur car IdCompteur a le type int et Description le type Varchar. Veuillez m'aider avec un code qui ignorera l'affichage et envoyer la clé étrangère qui IdCompteur et l'affichage c'est la Description qui doit être ignorée. Merci d'avance pour votre aide!!
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Dans cbonum, vous avez deux choses: IdCompteur et Description. Il n'est pas possible de prendre cbonum pour

    req="INSERT INTO client(IdCompteur,Nom) values('"& Trim(cbonum.Text) &"','"& Trim(txtnom.Text) &"')"


    il faut extraire l'IdCompteur de la chaine de caracteres de cbonum
    0
  4. dangelot05 Messages postés 29 Statut Membre
     
    Merci encore mais je ne sais pas comment extraire IdCompteur tout en affichant la Description sur la zone. Vueillez m'aider car je suis dans le besoin!!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    essayez avec ceci:

        Dim TInfos
    'recup ID dans TInfos(0)
    TInfos = Split(cbonum.Text, " ")
    'CLng: conversion chaine en entier long
    req = "INSERT INTO client(IdCompteur,Nom) values('" & CLng(TInfos(0)) & "','" & Trim(txtnom.Text) & "')"
    0
  7. dangelot05 Messages postés 29 Statut Membre
     
    Merci encore,
    Je viens de tester le code mais il y a l'erreur persiste
    Voici le message d'erreur:
    Run-time error '-21471217913(80040e07)

    Erreur de syntaxe lors de la conversion de la valeur varchar '1 Monophasé' vers une colonne de type de données int

    je conclus que le compilateur tient toujours compte de la valeur du champ affichéDescription au lieu d'envoyer la valeur de IdCompteur qui est 1 si c'est Monophasé; comment ignoré la valeur du champ Description et envoyé la valeur de IdCompteur?.
    Je suis vraiment bloqué, je vous prie de m'aider encore pour que je parvienne à enregistrer la valeur liée à l'affichage. Merci d'avance
    0
  8. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    si champ ID int, remplacez CLng par CInt.

    Montrez le code que vous avez ecrit svp

    Quelle base avez-vous, MySql, ou ........
    0
  9. dangelot05 Messages postés 29 Statut Membre
     
    Salut, voici le code que j'ai utilisé

    Dim TInfos
    TInfos = Split(cbonum.Text, " ")
    req = "INSERT INTO client(IdCompteur,Nom) values('" & CLng(TInfos(0)) & "','" & Trim(txtnom.Text) & "')"

    Ceci est le code que je viens d'utiliser tout de suite et qui m'affiche le message précedent!
    0
  10. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    quand vous avez l'erreur, clic sur debugage et passez le curseur souris sur cbonum.text et TInffos(0) . Mettez les valeurs dans votre prochain message

    Repondez aux questions precdentes svp
    0
  11. dangelot05 Messages postés 29 Statut Membre
     
    Salut!
    je m'excuse de ne pas répondre aux questions que vous m'avez posées.
    Concernant la connaissance sur MYSQL, cette dernière n'est pas médiocre car les systèmes de gestion que je maitrise sont
    MYSQL,SQLServer2000,2008 
    et un peu de Postgresql.
    La plupart des applications que j'ai déjà conçu; j'utilise comme langage de programmation
    PHP
    et système de gestion de base de données
    MYSQL
    mais VB6.0 est mon premier langage de programmation utilisé lorsque j'étais à l'université et SQLServer2000 mon système de gestion de base données.
    Mon seul souci est de mieux manipuler mes deux langages de programmation y compris JAVA dont je suis parmi les débutant.
    Je vous prie de m'aider avec le code de comment enregistrer cette clé étrangère liée à l'affichage! Merci encore et que DIEU vous bénisse
    0
  12. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Alors, pour l'instant, quelle base avez-vous et quel langage de programmation ??????
    0
  13. dangelot05 Messages postés 29 Statut Membre
     
    Comme je vous ai dit, actuellement j'utilise
    PHP
    comme langage de programmation et
    Mysql
    comme système de gestion de base de données. Mais je maitrise aussi pas à 100% Visual Basic 6.0 et SQLServer2000,2008
    Merci pour votre aide!
    0
  14. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    PHP ???????? le code que vous avez presente n'est pas en PHP !!!!!!
    0
  15. dangelot05 Messages postés 29 Statut Membre
     
    Si, ce n'est pas du
    PHP
    mais
    VB6.0
    .
    L'aide que je veux c'est sur Visual Basic 6.0, si vous avez lu mon message précedent, je vous ai décrit les langages de programmation que je maitrise pas mal
    PHP
    est le numéro un et VB number two.
    Merci encore!!
    0
  16. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,
    Ok pour le VB6.0, dernière chose, avez-vous fait ce que je demandai dans le Lien (#9) ?

    Pourriez_vous montrez le code de

    call executerrequate(req)
    0