[VB 6.0] DataSource [Résolu]

Messages postés
23
Date d'inscription
vendredi 18 mars 2005
Dernière intervention
2 avril 2011
- - Dernière réponse : Doro81079
Messages postés
398
Date d'inscription
vendredi 22 avril 2005
Dernière intervention
24 février 2015
- 14 sept. 2005 à 00:24
à une même zone de texte "Text1" est affecté deux champs de deux table différentes selon la recherche effectué.Le problème est le fait que la propriété "DataSource"
n'autorise pas l'affectation de deux champs à un même objet(textbox,label combobox...) et prend en charge la première affectation seulement et dans la deuxième affectation une erreur se produit
et le nouveau champs de la nouvelle requête n'est pas reconnu.
je vais donné un exemple por bien comprendre


private sub Recherche1()
dim rec as recordset
dim strSQL as String
strSQL = " SELECT Num_Port" & _
" From Nav_Port " & _
" WHERE Nom_Port = '" & Text2.Text & "';"


Set rec = cnc.Execute(strSQL, , adCmdText) 'cnc est la source de connection à la 'base effectué dans un module

Set Text1.DataSource = rec
Text1.DataField = "Num_Port"


End Sub


private sub Recherche2()
dim rec as recordset
dim strSQL as String
strSQL = " SELECT Nom_Port" & _
" From Navire " & _
" WHERE Num_Port = '" & Text3.Text & "';"


Set rec = cnc.Execute(strSQL, , adCmdText)

Set Text1.DataSource = rec
Text1.DataField = "Nom_Port"


End Sub


si la première procédure est executé avant, une message d'erreur s'affiche pendant l'execution du deuxième procédure qui m'indique:
"Impossible de lier au champs ou au DataMember : 'Num_Port'". et le curseur s'arrete sur la ligne "Set Text1.DataSource = rec" dans le débogage
je veux libérer "Text1" de l'ancien champs pour affecter le nouveau
Merci d'avance
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
398
Date d'inscription
vendredi 22 avril 2005
Dernière intervention
24 février 2015
13
3
Merci
bonsoir,

essaies avec des cases options suivant la recherche effectuées avec 1 if tel ou tel code est executé

exemple :

dim rec as recordset
dim strSQL as String

if optionrecherche1.value=true then

strSQL = " SELECT Num_Port" & _
" From Nav_Port " & _
" WHERE Nom_Port = '" & Text1.Text & "';"
Set rec = cnc.Execute(strSQL, , adCmdText)
Set Text1.DataSource = rec
Text1.DataField = "Num_Port"

elseif optionrecherche2.value =true then

strSQL = " SELECT Nom_Port" & _
" From Navire " & _
" WHERE Num_Port = '" & Text1.Text & "';"


Set rec = cnc.Execute(strSQL, , adCmdText)
Set Text1.DataSource = rec
Text1.DataField = "Nom_Port"

else

msgbox ("ce que tu veux...")

end if


mais sinon pourquoi tu passe pas par adodb???

salut
doro

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 89 internautes nous ont dit merci ce mois-ci

Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Dernière intervention
9 juin 2006
21
0
Merci
Fait l'inverse ! Affecte le DataField AVANT la DataSource

Christophe
Messages postés
23
Date d'inscription
vendredi 18 mars 2005
Dernière intervention
2 avril 2011
0
Merci
j'ai essayé mais ca na pas marché. j'ai essayé aussi avec
"set text1.datasource = nothing" , j'ai déclaré un nouveau recordset mais toujours le même problème

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.