Vb, afficher une requete dans un textbox

Résolu
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)

24 réponses

  1. Bonjour,

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

    ;o)
    0
    1. Contributeur
      matextbox.text=requeteSQL ....
      0
      1. tu crois que ça va marcher ???? tu pourrais développer un peu, non ? Parce que là, rien ne s'affichera ...
        0
    2. Contributeur
      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.com !
      n oubliez pas d aller sur google avant de poser vos questions...
      0
      1. 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 ?
        0
        1. Contributeur
          je ne suis sur de rien. si monsieur revient, il nous expliquera ses souhaits
          0
          1. 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:)
            0
            1. C'est ce que je veux dire également ... trop peu d'explication dans la demande pour intervenir efficacement.

              ;o)
              0
              1. 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
                0
                1. Contributeur
                  si Desc_PF.text=ReqSQL1 ne passe pas, je ne sais pas quoi te dire
                  0
                  1. peux-tu nous donner le message d'erreur stp ?

                    0
                    1. 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
                      0
                      1. 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


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

                          Merci
                          0
                          1. 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
                            0
                            1. 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 ?

                              0
                              1. 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 »
                                0
                                1. 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
                                  

                                  0
                                  1. 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
                                    0
                                    1. 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.
                                      0
                                      1. toutjours le meme problème dans le meme endroit,je ne comprend pas ou est le problème

                                        Dim rs As ADODB.Recordset
                                        Dim ReqSQL1 As String
                                        ConnectionString = "Provider=sqloledb;Data Source=srv-scala;Initial Catalog=scalaDB;User Id=sa;Password=iscala22;"
                                        ReqSQL1 = " select SC01002 FROM SC010100 WHERE SC01001 = '" & Mid(DataCombo1, 1, InStr(1, DataCombo1, " ")) & "';"
                                        Set rs = New ADODB.Recordset


                                        ' qu'est ce que tu veut dire par objet connection ???

                                        rs.Open ReqSQL1, 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

                                        Je te remercie de me consacrer du temps :)
                                        0
                                        • 1
                                        • 2