biddal
Messages postés45Date d'inscriptionjeudi 9 septembre 2004StatutMembreDernière intervention 8 août 2011
-
23 nov. 2005 à 14:42
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
7 déc. 2005 à 13:13
Je fais un projet vb pour moi en cours. Celui-ci gère mes prêts de CD. Mes cd sont répertoriés dans une base de donnés access. Il y a trois type de CD les logiciels, les divx, et les jeux. Pr mon menu j'ai commencer par faire un frame avec trois boutons à l'intérieur pour chaque type de CD. J'ai écris ce script:
Private Sub Command1_Click()
Dim var As Integer
var = 1
MsgBox (var)
Menu.Hide
Liste.Show
End Sub
Private Sub Command2_Click()
Dim var As Integer
var = 2
MsgBox (var)
Menu.Hide
Liste.Show
End Sub
Private Sub Command3_Click()
Dim var As Integer
var = 3
MsgBox (var)
Menu.Hide
Liste.Show
End Sub
Celui-ci me permet si je me suis pas tromper d' affecter une variable selon sur quel bouton commande de mon menu je clique. Mai après j'aimerai la récupérée dans une autre feuille mais je n'y arrive pa.
Private Sub Form_Load()
Dim base As Database
Dim sql As String
Dim table As Recordset
Set base = DBEngine.OpenDatabase("CD.mdb")
En fait au début j'avais fait trois feuilles différentes avec chacune une liste dessus et celle-ci me répertoriés tous mes CD du type sur lequel je cliquer or mon prof veut qu'il n'y ai qu'une feuille avec une seule liste et que je récupère la variable comme j'ai commencé à le faire mai je suis bloqué s'il vous plait aidez moi :((((.
Merci beaucoup.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 23 nov. 2005 à 14:58
Sans fouiller ton code, je vois déjà 2 choses qui posent à priori pb :
1- Ta déclaration de variable.
Tu colles ce bout de code dans chaque bouton : "Dim var As Integer".
Si tu veux que ta variable soit utilisée dans tout ton programme, il faut que tu la déclares une seule fois dans les procédures générales et non dans chaque procédure.
2- Ta requête SQL
Tu la définis comme suit : "sql = "SELECT Titre FROM CD_ROM where (Type=var)""
Avec ça, si je ne me trompe pas, ça ne peut que planter parce que la requête va planter : ton champ "type" ne contient pas le mot "var", comme tu viens de le taper.
Il faut écrire la requête sous cette forme plutôt :
sql = "SELECT Titre FROM CD_ROM where Type=" & var
biddal
Messages postés45Date d'inscriptionjeudi 9 septembre 2004StatutMembreDernière intervention 8 août 2011 23 nov. 2005 à 15:32
Par rapport à ton bout de code que tu m'as donné j'ai mis ca dis moi si je me suis trompé par rapport au ":
sql = "SELECT Titre FROM CD_ROM where (Type= "& var")"
ensuite pour ton histoire de variable globale je m'en doutais mais je vois pas ou je dois mettre mes variables globales en fait parce que ca c'est le seul code que j'ai pour mon projet vu que j'ai recommencé.
biddal
Messages postés45Date d'inscriptionjeudi 9 septembre 2004StatutMembreDernière intervention 8 août 2011 23 nov. 2005 à 17:03
Les variables globales comme la avec var peux tu me dire ou je dois la mettre pour qu'elle soit considérée comme telle parce que je vois pa. Désolé mais je débute vraiment le vb et je lis un livre mais il est trop compliqué je comprend pas tout.
Merci.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 23 nov. 2005 à 17:12
(je touche pas à VBA....)
puisque tu l'utilises dans plusieurs Form, le plus simple est de créer un module et de l'y déclarer
Public NumOfButton as Long
selon le bouton, tu initialises NumOfButton, ou tu crées un groupe de contrôles pour tes boutons (puisque c'est le même code) et NumOfButton reçoit alors Index (c'est le plus logique...)
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 23 nov. 2005 à 18:00
1.
Quand tu es dans l'éditeur VB, les déclarations globales se font lorsque les 2 boites de sélection sont sur "Général" et "Déclarations".
Pour faire simple, va tout en haut de ta page de code et c'est là que tu déclares ta varaible :
Dim Var as Integer
Le trait séparant les différents bout de code se mettra juste après.
Déclarée une seule fois à cet endroit, ta variable sera reconnue dans tout ton code.
2.
Ton code SQL :
sql = "SELECT Titre FROM CD_ROM where (Type= "& var")"
Je ne vois pas pourquoi tu veux absolument mettre des parenthèses, elles sont inutiles.
Mais sinon, il manque un caractère pour qu'il soit correct : Tu as oublié un & entre var et ")"; et tu as mis un espace de trop entre Type= et ta variable. Ton code devrait donc être :
sql = "SELECT Titre FROM CD_ROM where (Type="& var & ")"
ou plus simplement :
sql = "SELECT Titre FROM CD_ROM where Type=" & var
Dernière chose :
Ta variable est de type integer, je suppose donc que tu exécutes ta requête sur un champ de type numérique. Si dans ta base, ton champ est de type Texte, ça ne marchera pas de cette façon. A toi de voir si tu ne dois pas modifier le type de champ de ta base.
Sinon, la requête sera à écrire comme suit :
sql = "SELECT Titre FROM CD_ROM where Type=" """" & var & """"
biddal
Messages postés45Date d'inscriptionjeudi 9 septembre 2004StatutMembreDernière intervention 8 août 2011 30 nov. 2005 à 13:04
j'ai besoin d'aide lorsque je lance mon programme ^^ celui ci s'execute jusqu'à ce qu'il arrive à la ligne ICI:
Public Sub Form_Load()
Dim base As Database 'activer microsoft DAO 3.6 dans Projet-reference
Dim sql As String
Dim table As Recordset
Set base = DBEngine.OpenDatabase("CD.mdb")
sql = "SELECT Titre FROM CD_ROM where Type=" & var
MsgBox (sql)
Je rappel encore une fois que je débute le vba et le prof nous laisse nous débrouiller tout seul et nous donne pas de cours la dessus il nous fait cours que sur du c.Alors svp aider moi c'est pour mon passage en deuxieme année de bts.Dites moi pourquoi ca ne s"execute pas correctement.Merci.
Voila ma deuxieme page peut etre que ca vous aidera a comprendre:
Public var As Long
Private Sub Command1_Click()
var = 1
MsgBox (var)
Menu.Hide
Liste.Show
End Sub
Private Sub Command2_Click()
var = 2
MsgBox (var)
Menu.Hide
Liste.Show
End Sub
Private Sub Command3_Click()
var = 3
MsgBox (var)
Menu.Hide
Liste.Show
End Sub
biddal
Messages postés45Date d'inscriptionjeudi 9 septembre 2004StatutMembreDernière intervention 8 août 2011 30 nov. 2005 à 13:41
Que puis je faire pour que cela fonctionne car j'ai aucune notion et je ne sais meme pas ce qu'est la différences entre ces deux syntaxes.Peux tu m'expliquer stp.Merci de ta reponse.
biddal
Messages postés45Date d'inscriptionjeudi 9 septembre 2004StatutMembreDernière intervention 8 août 2011 30 nov. 2005 à 13:49
Ensuite je souhaite recuperer la variable var dans ma premiere page et l'avoir dans la deuxieme page pour afficher selon le bouton de mon menu sur lequel je vais cliquer pour que ca m affiche certaines données de ma base de données access selon la variable var.Je sais pzas si je me fait bien comprendre!!!!!