Thaelveen
Messages postés6Date d'inscriptionlundi 12 janvier 2009StatutMembreDernière intervention28 janvier 2009
-
13 janv. 2009 à 07:02
Thaelveen
Messages postés6Date d'inscriptionlundi 12 janvier 2009StatutMembreDernière intervention28 janvier 2009
-
28 janv. 2009 à 09:33
Bonjour a toutes et tous,
je débute dans le dévellopement et je me rtrouve confronter à une problême que je n'aipas encore résolue et donc je vous l'expose pour savoir sivous pourriez m'aider, et le problême le voici :
Dans une formulaire de gestion de devis, je dois faire en sorte que quand je choisi un numéro dans ma combobox dans une texte boss placé en face de celle ci s'affiche le texte s'y rapportant et pour cela on me demande d'aller chercher ce texte dans la base de donnée en ayant recours a une requête SQL seulement voila je n'ai pas encore appris a faire sa donc pour le moment je tergiverse un peu sur le Code et donc voila ce que sa a donné :
Private Sub Combo36_Click()
Dim Db As Database
Dim strCombo36 As String
Dim oRst As Recordset
Dim strSQL As String
Set Db = CurrentDb
Je n'arrive pas vraiment a définir un vrai recordset, ni d'ailleurs en utilisé...mais, ce qu'on peut dire c'est qu'on es connecté directement a la BDD et que donc pas besoin d'ouvrir une connection ODBC enfin voila si on peut me conseiller j'accepte volontier
skyla
Messages postés60Date d'inscriptionsamedi 17 juin 2006StatutMembreDernière intervention19 octobre 2009 14 janv. 2009 à 12:02
Salut,
Lorsque tu execute une requette,ta variable MaTable te ramène ou non un résultat,qui est sous forme d'un tableau.Il te faudra parcourir ce tableau afin de pouvoir afficher ces resultat la ou tu souhaite.C'est cela que Renfield t'a proposer dans son code,mais apparement tu ne l'as pas appliqué dans ton poste.Ta requette te ramene normalement une seule ligne de resultat donc pas de boucle de parcours.
strSQL = "Select type_objet_texte From dbo.Combo_type_objet Where Type_objet=" & Combo36.value
Set MaTable= Db.OpenRecordset(strSQL) 'Db Execute la requete et ramene le resultat de strSQLdansMaTable
If Not MaTable.EOF Then
'Si on a un résultat (EOF=End Of File=Fin de Fichier)
Text36.Value = MaTable.Fields("type_objet_texte").Value 'Dans MaTable,la valeur du champ type_objet_texte
End If
'Afficher dans Text36 la valeur du champ type_objet_texte correspondant a cette ligne de resultat
'Il faut obligatoirement que tu Telecharge des cours de SQL pour comprendre la syntaxe et surtout comment
'te sont ramener les resultat d'une requette afin de les exploiter.je te conseille le site de
'developpez.com ou tu trouvera de bon tutoriels pour SQL et Access.
Metnant au boulot!!
Thaelveen
Messages postés6Date d'inscriptionlundi 12 janvier 2009StatutMembreDernière intervention28 janvier 2009 28 janv. 2009 à 09:33
Bonjour a toutes et tous,
Voila j'ai résolu le problême de connection à la base de données, et donc sa marche nikel je vous remercie pour le coup de main et je laisse une partie du code pour les combos pour nos amis qui chercherons des réponses :
'Déclaration des variables :
Dim strSQL As String
Dim rst As dao.Recordset
Dim Db As dao.Database
'Ouverture de la base de donnée :
Set Db = DBEngine.OpenDatabase("NomDB", Options, ReadOnly, "ODBC;")
' Création d'un requête SQL en mode Texte, qui sélectionne Le chptbl2 dont le numéro est sélectionner dans la combo :
strSQL = "Select chptbl2 From Nomtbl Where Chptbl1= " & NomCombo.Value
'Ouverture du Recorset :
Set rst = Db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly)
If Not rst.EOF Then
Nomtextbox.Value = rst.Fields("chptbl2").Value
End If
Voila pour vous, si quelqu'un ne comprends pas vraimrnt le code qu'il m'envoie un message privée je lui répondrais le plus rapidement que possible bye
skyla
Messages postés60Date d'inscriptionsamedi 17 juin 2006StatutMembreDernière intervention19 octobre 2009 13 janv. 2009 à 07:46
Salut,
A lire ton code ca vas pas etre du gateau.Mais j'ai plusieur remarques
Dim Db As Database ' Tu declare Db sans jamais l'utiliser
Dim strCombo36 As String ' La seule variable utilisé
Dim oRst As Recordset 'la aussi ok
Dim strSQL As String
Set Db = CurrentDb '??? Tu programme en quoi?? VB6 ou ACCESS
strCombo36 = "='" & Me.Combo36.Value & "' " ' un = de trop
strSQL = "SELECT type_objet_texte FROM Combo_type_objet " & _
"WHERE Type_objet=" & strCombo36 ' = deja present dans
strCombo36
Set oRst = Db.OpenRecordset(strSQL) ' tu ouvre ta requette
End Sub ' Pourqoui finis.Comment tu recupere tes enregsitrements
Il faut que tu sois plus explicite si tu veux qu'on t'aide.Quelles connaissances as t-u deja acquis.tu programme en quoi?vu ton currentdb je pense que tu es en vba et la bemol,trompé de theme,le premier admin qui passe ce matin n'aura pas le temp de boire du café,lol
Ce que tu demande est tres simple a mettre en place,que ce soit en vb6 ou du vba,mais il faut vraiment que tu t'eclaircisse.
[mailto:Sk@yL S]
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 13 janv. 2009 à 08:03
Renomme tes contrôles... Combo36 c'est pas parlant.
une bonne habitude à prendre.
ta chaine SQL comporte deux signes égal == ça n'est pas normal...
tu est presque parvenu a tes fins, suffirait vraisemblablement d'ajouter :
If Not oRst.EOF Then
Text36.Value = oRst.Fields("type_objet_texte").Value
'# syntaxe équivalente mais non conseillée:
'# Text36.Value = oRst!type_objet_texte
End If
Vous n’avez pas trouvé la réponse que vous recherchez ?
Thaelveen
Messages postés6Date d'inscriptionlundi 12 janvier 2009StatutMembreDernière intervention28 janvier 2009 13 janv. 2009 à 11:03
Oui désolé de ne pas avoir préciser je programe en vba , avec SQL server comme BDD, et pour répondre au niveau de mes connaissances, j'ai programmer qu'en vb6 bien que vba soit pas très différent de vb6, j'ai dû quand même me prendre le gros bouquin d'accès 2003 pour trouver mes réponses et j'avoue que ce bouquins c'étais plus une bible qu'un guide
Et donc tout cela pour dire que je suis un débutant de chez débutant !
Thaelveen
Messages postés6Date d'inscriptionlundi 12 janvier 2009StatutMembreDernière intervention28 janvier 2009 14 janv. 2009 à 06:52
Bonjour, j'ai toujours pas trouvé comment faire de mon coté, et bon c'est la sécherèsse total de matière grise ! Si vous avez des astuces ou des cours qui pourrait m'aider à bien apprendre a créer un recordset je suis preneur ! Je suis prêt pour le Brainstorming !
Thaelveen
Messages postés6Date d'inscriptionlundi 12 janvier 2009StatutMembreDernière intervention28 janvier 2009 14 janv. 2009 à 08:56
Rebonjour, donc j'ai réecrit le code avec quelque truc en plus mais bon cette fois sa me dis : Object Variable or With Block variable
Not set. Je comprends pas vraiment ce qu'il me demande ici....Noob time....
Voici le code :
Private Sub Combo36_Click()
'Déclaration des variables :
Dim strSQL As String
Dim db As dao.Database
Dim MaTable As dao.Recordset
Dim Box As String
'Ouverture de la base de donnée :
Set db = CurrentDb
' Création d'un requête SQL en mode Texte, qui sélectionne Le type objet texte dont le numéro est sélectionner dans la combo36 :
strSQL = "Select type_objet_texte From dbo.Combo_type_objet Where Type_objet=" & Combo36
Je vois pas ou es le problême mais bon c'est surement parce que je suis un débutant lol, donc si on peut me guider sur ce qui manque je vous en serai reconnaissant merci !