IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Probleme de syntaxe entre access et vb6


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut Probleme de syntaxe entre access et vb6
    Bonjour,
    j'essaye depuis des heure a jour deux champs d'une table access.
    on va appeler e ces champs var1as integer et var2 as integer.
    ces champs sont remplis par un textbox
    Ce sont les positions x et y de certains elements que je dois régulièrement mettre a jour.

    MSG : "UPDATE Boutons SET Boutons.PosX =11,& Boutons.PosY =22," WHERE (((Boutons.Id_Bouton)=60));" : String

    ici il affiche bien la valeur des textbox mais dans acces j'ai une syntaxe erreur et aucun update ne se réalise.

    merci de m'éclairer sur ces fautes de syntaxe

    PS: 11 et 12 doivent etres des variables style var1 et var2

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 876
    Points : 4 751
    Points
    4 751
    Par défaut
    Bonjour
    Cela dépend du type des variables val1 et val2

    Si val1 et val2 sont des string ou des doubles (encadre avec des ')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE Boutons SET PosX ='" & val1 & "', PosY ='" & val2 "' WHERE Id_Bouton = 60;"
    Si val1 et val2 sont des integer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE Boutons SET PosX =" & val1 & ", PosY =" & val2 " WHERE Id_Bouton = 60;"
    "Always look at the bright side of life." Monty Python.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut suiite de comment faire un update en sql...
    bonjour, voila au plus simple et au plus clair
    comment syntaxer var1 et var2 dans la requête update ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim var1 as integer
    dim var2 as interger
    var1=18
    var2=21
    posx et posy sont des champs de la table boutons de la bd Access

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Boutons SET Boutons.PosX = var1, Boutons.PosY = var2 WHERE (((Boutons.Id_Bouton)=1));

    mersi d'avance de m'eclairer sur cette satanée syntaxe

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 876
    Points : 4 751
    Points
    4 751
    Par défaut
    Depuis le QBE ou dans du code VBA ? faudrait préciser ...

    dans du code VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    dim var1 as integer, var2 as integer, s1 as string
    var1=18
    var2=21
    s1 = "UPDATE Boutons SET Boutons.PosX =" & var1 & ", Boutons.PosY =" &  var2 _
    & " WHERE Id_Bouton =1"
    currentbd.execute s1
    ' vérification dans la fenêtre Execution du VBE
    debug.print dlookup("PosX","Boutons","Id_Bouton =1)
    "Always look at the bright side of life." Monty Python.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut pas encore
    presque bon, juste que access me dit ;

    erreur de syntaxe dans la dans l'expression << id_bouton =1 >>
    merci pour tes efforts mais c'est deja bcp mieux que moi.

    courage tu vas trouver
    merci

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut il te manque une donnée
    voici sur ce que je travaille..... trop de code que pour tout changer....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Init_Tables()
    On Error Resume Next
    Dim I, J As Integer
    Dim cnx As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim MSG As String
     
      Set cnx = New ADODB.Connection
      Set rst = New ADODB.Recordset
      cnx.ConnectionString = Db_GetConnString
      cnx.Open
     
      MSG = "SELECT * FROM  Boutons"
      rst.Open MSG, cnx
    je n'ouvre pas la table de la même façon que toi

  7. #7
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 876
    Points : 4 751
    Points
    4 751
    Par défaut
    dans ton 1er message, tu annonces un pb d'' UPDATE :
    MSG : "UPDATE Boutons SET Boutons.PosX =11,& Boutons.PosY =22," WHERE (((Boutons.Id_Bouton)=60));" : String

    ici il affiche bien la valeur des textbox mais dans acces j'ai une syntaxe erreur et aucun update ne se réalise.
    je ne retrouve pas cette ligne dans ton code affiché ci-dessus
    "Always look at the bright side of life." Monty Python.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut suite
    en fait p01x rt p01y sont 2 textbox
    ily a aussi p05x et p05y
    p1x et p1y
    p5x et p5y

    etc etc x etant l'absicce x et y de meme d'ou je peux faire un setcusorpos de po1x et p01y
    le texte box sert juste a ce que je puisse reccalibrer et un fois recalibrer pouvoir renvoyer ces valeurs a la mdb
    vu qu'au départ elle se base sur les données de la table mais parfois cela change donc je dois recalibrer... sauver jusqu’au prochain changement
    est-ce assez clair ?

    je veus jouer a un programme automatiquement mais parfois les jetons changent de place d'ou un textbox ou je peux entrer les nouvelle coordonnées et un bouton w pour write dans la mdb voila la fameuse question du update.
    je dois updater en une fois le nouvel x et le nouveau y ainsi quand je relance le programme si rien n'a changé je dois plus rien faire.
    J"llais oublier le bouton W met à jour la base de données mais aussi dynamiquement lez données préchargées
    merci

    merci

  9. #9
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub Command15_Click()
    On Error Resume Next
    Dim I, J As Integer
    Dim cnx As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim Mysql As String
     
      Set cnx = New ADODB.Connection
      Set rst = New ADODB.Recordset
      cnx.ConnectionString = Db_GetConnString
      cnx.Open
     
    Mysql = "UPDATE Boutons SET Pos_x= '" & p01x & "'&" where id_bouton='1'"
    Debug.Print Mysql
     
    rst.Open Mysql
    rst.Close
     
    End Sub
    ...
    de toute façon j'abandonne ca a L'air impossible
    si sulement il y avait moyen de ne passer qu'une seule de ces valeurs je l'écrirais sur 2 lignes mais j'ai tout essaye et et rien à faire
    1 ligne de code pour le x et unautre pour le y
    merci quan même

  10. #10
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 876
    Points : 4 751
    Points
    4 751
    Par défaut
    Au début ne t'embête pas avec ADODB, préfère DAO c'est plus simple.
    Cependant pour utiliser DAO, depuis ACC-2007, il faut ajouter la référence 'Micosoft DAO 3.6 object library'

    Essaie, ça devrait marcher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub Command15_Click()
    'On Error Resume Next
    Dim i As Integer, j As Integer
    Dim db As DAO.database
    'Dim rst As DAO.Recordset
    Dim mySql As String
     
    Set db = currentdb 
     
    mySql = "UPDATE Boutons SET Pos_x= '" & p01x & "' WHERE id_bouton='1'"   ' cela suppose que id_bouton n'est pas entier ??? car si c'est un entier, il faut ecrire id_bouton = 1
    ' mySql = "UPDATE Boutons SET Pos_x= '" & p01x & ", Pos_y= '" & p02x & "' WHERE id_bouton='1'"
    Debug.Print Mysql
     
    db.execute mySql   ' db.execute pour exécuter une requete action (UPDATE, INSERT, DELETE)
     
    ' on ferme les objets ouverts
    set db= nothing
    End Sub
    "Always look at the bright side of life." Monty Python.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut
    [B]onsoir;

    merci d'essayer de m'aider mais la j'ai une erreur à la compil
    erreur de compilation
    variable non definie.

    merci de m'éclairer

  12. #12
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut
    Bonjour,

    tout m'a l'air correct dans ton code
    mais je n'arrive pas a sortir cette erreur

    bonne journee

  13. #13
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 876
    Points : 4 751
    Points
    4 751
    Par défaut
    as-tu déclaré comme dans l'exemple ? as-tu déclaré la référence DAO ?
    "Always look at the bright side of life." Monty Python.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut
    oui c'est la quatrième ligne de ton code.

    à la compil;
    je reçois erreur de compilation
    currentdb
    variable non définie

    et l'accent est mis sur currentdb qui est tout en bleu c'est là l'erreur

  15. #15
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 876
    Points : 4 751
    Points
    4 751
    Par défaut
    Je redis à nouveau :
    il faut ajouter la référence 'Micosoft DAO 3.6 object library'
    Pour ajouter une reference, ouvrir le VBE (l'éditeur de code VBA)
    puis dans le menu horizontal, [Outils] puis [references], et là tu ajoutes la bibliothèque DAO citée ci-dessus ...
    "Always look at the bright side of life." Monty Python.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut
    bonsoir,
    c'est la premiere chose que j'ai fait...

  17. #17
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut
    bonsoir, j'ai fait un nouveau projet avec juste les 2 textbox et bouton de commande
    j'y ai collé ton code mais question, car novice en dao
    je la déclare comment ma bd (on va dire c;/bd1
    hé oui j'ai aussi fait une nouvelle bd
    et tracasse la seule réfrence cochée est Micosoft DAO 3.6 object library'

    bonne soiree.
    j'attend juste de savoir comment declarer ma bd et je pourrai tester alors ton code.

    merci

  18. #18
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut
    voici ou j'en suis en plus de la form et du code (qui ne fait absolument rien)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Private Sub Command1_Click()
    Dim db As Database
    Dim rs As Recordset
    Dim nb_rows As Integer
    Dim nb_recs As Integer
    Dim n As Integer
    Dim mysql As String
     
    ' ouvrir la base de donn?es
    Set db = OpenDatabase("c:\db1.mdb")
    mysql = "UPDATE Boutons SET Pos_x= '" & p01x & "' WHERE id_bouton='1'"   ' cela suppose que id_bouton n'est pas entier ??? car si c'est un entier, il faut ecrire id_bouton = 1
    Debug.Print mysql
    End Sub
    resultat du debug:
    UPDATE Boutons SET Pos_x= '123' WHERE id_bouton='1'
     
    qui devrait etre +/- UPDATE Boutons SET Pos_x= '123' , pos_y ='456' WHERE id_bouton='1'
    maintenant faut traduire cela en vb6
    REMARQUE:
     
    123 devient p01x
    456 devient p01y
    encore merci pour l'aide que tu m'apporte

  19. #19
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 876
    Points : 4 751
    Points
    4 751
    Par défaut
    Je ne comprend pas ce qui t'arrive, voici un exemple
    Fichiers attachés Fichiers attachés
    "Always look at the bright side of life." Monty Python.

  20. #20
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Décembre 2004
    Messages : 73
    Points : 31
    Points
    31
    Par défaut cela ne m'avance pas du tout...
    bonsoir, j'ai fait un projet pour expliquer ma demande
    sur la form tu as 2 champs txt (po0x et p01y)
    un bouton de commznde qui doit fair un update de la bd (jointe)
    et tout ce qui manque c'est la requete update
    en gros c'est UPDATE bouton set pos_x= p01x, pos_y= pp01y
    cest juste la syntaxe que je ne trouve pas avec ces tremas, double quote et &
    si tu pouvais tester avant de renvoyer la reponse ce serait sympa

    Merci et bonne soiree
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. probleme de syntaxe entre deux date
    Par youba11 dans le forum VB.NET
    Réponses: 4
    Dernier message: 26/06/2008, 16h28
  2. Réponses: 5
    Dernier message: 30/08/2006, 15h10
  3. [VB6] Probleme base de donnée access et vb
    Par floran30 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/06/2006, 15h19
  4. [VB6]Probleme de communicatons entre formulaires
    Par cd090580 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/06/2006, 17h40
  5. probleme de connexion entre delphi 7 et une BD access
    Par bob.marley dans le forum Bases de données
    Réponses: 5
    Dernier message: 21/04/2004, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo