Rechercher : dans
Par :

Vb, afficher une requete dans un textbox

Dernière réponse le 25 jun 2008 à 16:05:41 roros, le 25 jun 2008 à 07:37:37 
 Signaler ce message aux modérateurs

Bonjour,
Je travaille sur VB avec une base de données SQL, j'aimerai savoir comment afficher une requête dans un TextBox??

Merci D)

1

Polux31, le 25 jun 2008 à 09:09:52

Bonjour,

C'est le résultat de ta requête ou la commande SQL que tu veux afficher ?

;o) «Ce que l'on conçoit bien s'énonce clairement, Et les mots p­our le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

2

Nabla's, le 25 jun 2008 à 09:55:53

Matextbox.text=requeteSQL .... periphérique marche pas? detection auto sur touslesdrivers.c­om !
n oubliez pas d aller sur google avant de poser vos question­s...

Répondre à Nabla's

3

Polux31, le 25 jun 2008 à 10:01:31

Tu crois que ça va marcher ???? tu pourrais développer un peu, non ? Parce que là, rien ne s'affichera ...
«Ce que l'on conçoit bien s'énonce clairement, Et les mots p­our le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

4

Nabla's, le 25 jun 2008 à 10:14:18

Ben il a sa requete sql dans uen variable requeteSQL, et il affiche le contenu ´dans la textbox ...
ceci dit, je recommanderai plutot l utilisation del aocnsole de debugage:
debug.print requeteSQL
--
periphérique marche pas? detection auto sur touslesdrivers.c­om !
n oubliez pas d aller sur google avant de poser vos question­s...

Répondre à Nabla's

5

Polux31, le 25 jun 2008 à 10:18:57

Ah ! et tu es sûr que c'est ça qu'il veut ?

Ca ne serait pas plutôt le résultat d'une requête ? ou bien construire une requête qui s'affiche dans un textbox ?
«Ce que l'on conçoit bien s'énonce clairement, Et les mots p­our le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

6

Nabla's, le 25 jun 2008 à 10:21:24

Je ne suis sur de rien. si monsieur revient, il nous expliquera ses souhaits

Répondre à Nabla's

7

roros, le 25 jun 2008 à 10:24:18

Je vais vous envoyer le code et vous expliquerer en détail, d'ici 1h de temps car la je n'ai pas le code devant moi.
Merci de votre patience:)

Répondre à roros

8

Polux31, le 25 jun 2008 à 10:24:49

C'est ce que je veux dire également ... trop peu d'explication dans la demande pour intervenir efficacement.

;o) «Ce que l'on conçoit bien s'énonce clairement, Et les mots p­our le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

9

roros, le 25 jun 2008 à 11:01:23

Voici le code:


Private Sub Afficher_PF_Click ()

Adodc1.ConnectionString = CxBase

'Requete qui affiche tout les informations concernant la GAMME

Adodc1.RecordSource = "SELECT TU_BU_GAMME.TUBG_OP as 'Numéro Opération ', TU_BU_GAMME.TUBG_CC ' Centre de Charges ',
TU_BU_GAMME.TUBG_DESC_OP ' Description Opération ',TU_BU_COUTS.TUBC_CODE_ENT as ' Code Entretien ' , TU_BU_COUTS.TUBC_CODE_ELEC as ' Code Electricité '
FROM TU_BU_GAMME INNER JOIN
SC010100 ON TU_BU_GAMME.TUBG_PF = SC010100.SC01001 INNER JOIN TU_BU_COUTS ON dbo.TU_BU_GAMME.TUBG_CC = dbo.TU_BU_COUTS.TUBC_CC AND TU_BU_GAMME.TUBG_ANNEE = TU_BU_COUTS.TUBC_ANNEE
Where TUBG_PF = '" & DataCombo1 & "' and TUBG_ANNEE= '" & Annee_Gam.Text & "'"

Set DataGrid1.DataSource = Adodc1
Adodc1.Refresh

Jusqu’ici touts fonctionne

'Requete qui affiche la Designation du Produit Finie

Dim cmd1 As ADODB.Command
Dim rdset1 As Recordset
Set cmd1 = New ADODB.Command
Set cmd1.ActiveConnection = CxBase

ReqSQL1 = " select SC01002 FROM SC010100 WHERE SC01001 = '" & Mid (DataCombo1, 1, InStr (1, DataCombo1, " ")) & "';"

cmd1.CommandText = ReqSQL1

Debug.Print ReqSQL1

Ici ca bug
Set rdset1 = cmd1.Execute (ReqSQL1)

If rdset1.EOF = False Then
Desc_PF.Text = rdset1! SC01002
End If

Moi je veux afficher la requête ReqSQL1 dans le textBox Desc_PF.text

Répondre à roros

10

Nabla's, le 25 jun 2008 à 11:08:46

Si Desc_PF.text=ReqSQL1 ne passe pas, je ne sais pas quoi te dire
periphérique marche pas? detection auto sur touslesdrivers.c­om !
n oubliez pas d aller sur google avant de poser vos question­s...

Répondre à Nabla's

11

Polux31, le 25 jun 2008 à 11:13:28

Peux-tu nous donner le message d'erreur stp ?

«Ce que l'on conçoit bien s'énonce clairement, Et les mots p­our le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

12

roros, le 25 jun 2008 à 11:48:04

en fait l'erreur c'est type incompatbile

si le code n'était pas clair, je l'ai un peu modifié le voici avec des commentaires plus détaillés à la fin

Private Sub Afficher_PF_Click ()

Dim cmd1 As ADODB.Command
Dim rdset1 As Recordset
Set cmd1 = New ADODB.Command
Set cmd1.ActiveConnection = CxBase

ReqSQL1 = " select Desc_Gamme FROM GAMME WHERE Code_PF = '" & Mid (DataCombo1, 1, InStr (1, DataCombo1, " ")) & "';"

cmd1.CommandText = ReqSQL1

Debug.Print ReqSQL1

Set rdset1 = cmd1.Execute (ReqSQL1)

If rdset1.EOF = False Then
Desc_PF.Text = rdset1! Desc_Gamme
End If


Commentaire
Au début il ya un DataCombo qui contient des items. Il faut quand je choisis un item il faut que j’appuie sur le bouton Afficher_PF pour afficher la description de l’item que j’ai choisi dans un textbox.


Moi je veux afficher la requête ReqSQL1 dans le textBox Desc_PF.text

Répondre à roros

13

Polux31, le 25 jun 2008 à 12:02:42

Essaies ça :

Dim cnx As ADODB.Connection
Dim rs As ADODB.Recordset
Dim ReqSQL1 As String
    
    ReqSQL1 = " select Desc_Gamme FROM GAMME WHERE Code_PF = '" & Mid (DataCombo1, 1, InStr (1, DataCombo1, " ")) & "';" 

    Set rs = New ADODB.Recordset
    Set cnx = New ADODB.Connection
    cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CxBase
    
    rs.Open ReqSQL1, cnx.Open
    rs.MoveFirst
    Desc_PF.Text = rs.Fields(0)

    rs.Close
    cnx.Close
    Set rs = Nothing
    Set cnx = Nothing




«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

14

roros, le 25 jun 2008 à 12:12:35

Ok, je vais essayer le code, je te tiendrai au courant cet aprem,

Merci

Répondre à roros

15

roros, le 25 jun 2008 à 14:03:38

J'ai essayé ca ne marche pas



Dim cnx As ADODB.Connection

Dim rs As ADODB.Recordset

Dim ReqSQL1 As String



ReqSQL1 = " select Desc_Gamme FROM GAMME WHERE Code_PF = '" & Mid (DataCombo1, 1, InStr (1, DataCombo1, " ")) & "';"



Set rs = New ADODB.Recordset

Set cnx = New ADODB.Connection

cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CxBase



rs.Open ReqSQL1, cnx.Open

« Erreur de compilation : Function ou variable attendue »

rs.MoveFirst

Desc_PF.Text = rs.Fields(0)



rs.Close

cnx.Close

Set rs = Nothing

Set cnx = Nothing

Répondre à roros

16

Polux31, le 25 jun 2008 à 14:11:34

Set rs = New ADODB.Recordset 

Set cnx = New ADODB.Connection 

cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CxBase 

cnx.Open 

rs.Open ReqSQL1, cnx


je viens de faire un test chez moi, ça fonctionne, je récupère bien le recordset ... as-tu bien inclus la référence :
Microsoft ActiveX Data Objects Library x.x dans ton projet ?

«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

17

roros, le 25 jun 2008 à 14:41:46

Il me donne une autre erreur maintenant


Dim cnx As ADODB.Connection

Dim rs As ADODB.Recordset

Dim ReqSQL1 As String



ReqSQL1 = " select SC01002 FROM SC010100 WHERE SC01001 = '" & Mid(DataCombo1, 1, InStr(1, DataCombo1, " ")) & "';"



Set rs = New ADODB.Recordset

Set cnx = New ADODB.Connection

cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CxBase



cnx.Open

« Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d’état OLE-DB disponible .Aucun travail n’a été effectué »



rs.Open ReqSQL1, cnx

rs.MoveFirst

Desc_PF.Text = rs.Fields(0)



rs.Close

cnx.Close

Set rs = Nothing

Set cnx = Nothing





Moi j’ai crée un module public et j’ai mis dedans et ca marche pour tout les requetes select:

' Déclaration de l'object connection pointant vers la base en cours

' -----------------------------------------------------------------

Public CxBase As ADODB.Connection



' Procédure de connection aux bases de données

Public Sub ConnecBdd()



Set CxBase = New ADODB.Connection



' Lecture du fichier CRSS58.INI

Call Lec_BUDGETini



' Initialisation de la variable qui pointe vers la base Access

LaBase = CheminAccesBase



' Paramétrage de la connexion

Select Case ConnectionActiveLue

Case "ConnectionAccess": CxBase.ConnectionString = ConnectionActive

CxBase.Open LaBase

Case "ConnectionOracle": CxBase.Open ConnectionActive

Case "ConnectionSQLServer": CxBase.Open ConnectionActive

End Select

End Sub





et pour la connection je met ça par exemple:

Adodc2.ConnectionString = "Provider=sqloledb;Data Source=srv-scala;Initial Catalog=scalaDB;User Id=sa;Password=iscala22;"






En fait Je ne sais pas ou il faut mettre ca « Microsoft.Jet.OLEDB.4.0;Data Source »

Répondre à roros

18

Polux31, le 25 jun 2008 à 14:49:07

Eh ben j'ai imaginé que ta base était Access.

Alors on reprend tout :o)

Dim rs As ADODB.Recordset
Dim ReqSQL1 As String
    
    ReqSQL1 = " select Desc_Gamme FROM GAMME WHERE Code_PF = '" & Mid (DataCombo1, 1, InStr (1, DataCombo1, " ")) & "';" 

    Set rs = New ADODB.Recordset
    
    rs.Open ReqSQL1, moduleBdd.CxBase  'ici le module public qui contient l'objet connexion avec la base (CxBase)
    rs.MoveFirst
    Desc_PF.Text = rs.Fields(0)

    rs.Close
    Set rs = Nothing

«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

19

roros, le 25 jun 2008 à 15:11:36

Toujours l'erreur dans la meme endroit

Dim rs As ADODB.Recordset
Dim ReqSQL1 As String
Set cmd1 = New ADODB.Command
Set cmd1.ActiveConnection = CxBase

ReqSQL1 = " select SC01002 FROM SC010100 WHERE SC01001 = '" & Mid(DataCombo1, 1, InStr(1, DataCombo1, " ")) & "';"
Set rs = New ADODB.Recordset


message d'erreur : L'objet ne gère pas cette propriété ou cette méthode
rs.Open ReqSQL1, cmd1.CxBase

'ici le module public qui contient l'objet connexion avec la base (CxBase)
rs.MoveFirst
Desc_PF.Text = rs.Fields(0)
rs.Close
Set rs = Nothing

Répondre à roros

20

Polux31, le 25 jun 2008 à 15:14:24

Il ne faut pas mettre ça :
Set cmd1 = New ADODB.Command
Set cmd1.ActiveConnection = CxBase

Ensuite il faut que ta base soit ouverte pour passer la requête.
«Ce que l'on conçoit bien s'énonce clairement, Et les mots p­our le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31
Collection CommentÇaMarche.net