Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[VB6] recuperer le résultat d'une requete SQL

  ripcurlpro, le lundi 21 mars 2005 à 16:38:08
Bonjour,
je suis en train de develloper une application sous VB 6 et je n'arrive pas a trouver la commande adéquat a mes exigeances :

Tout d'abord je vais vous expliquer la procedure du programme en question ensuite le code

La procedure du programme

1 - il charge la base de données choisi par code
2 - il charge le nom de tables contenu dans la table dans une listbox
3 - il charge le noms des champs de la table choisi en 2 dans une liste box
4 - il transfert les noms de champs choisi en 3
5 - il genere un code SQL de type SELECT ... FROM en prenant le nom des champs qui sont en 4 et le nom de la table saisie en 2

6 - de cette requete il extrait les resultats des champs pour faire une requete de remplissage de table de type INSERT INTO ... VALUES puis ('Valeur.champ1','Valeur.champ2',...);
7 - il enregistre ligne par ligne (la sauvegarde dans le fichier se fait par pairs de INSERT INTO avec('......'); dans un fichier

seul les 6 et 7 sont encore a faire, mais si les autres ne vous semble pas assez bien fait, merci d'expliquer pourquoi :-)

voici le code :
Option Explicit
'creation d'une var de connection ADO
    Dim Adoconnex As New ADODB.Connection
    
    'Creation d'un RecordSet
    Dim Rcdset As New ADODB.Recordset

    'creation des champs de la table
    Dim fldLoop As ADODB.Field
    
    Dim nom_table As String
    
Private Sub cmdcharg_Click()

'ouverture d'une connexion Scheme de table
Set Rcdset = Adoconnex.OpenSchema(adSchemaTables)

' Repeter tant que le dernier élément n'est pas atteint
Do Until Rcdset.EOF

'la listbox recoit le nom de la table et avant d'un cran
    lstnomtabl.AddItem Rcdset!table_name
    Rcdset.MoveNext

Loop
Rcdset.Close

' une fois les tables chargées le bouton devient inactif
cmdcharg.Visible = False

End Sub

Private Sub cmdnouv_Click()
Lstchamprecep.Clear
lstnomchamp.Clear
lstnomtabl.Clear

cmdcharg.Visible = True
Cmdrecupchamp.Visible = True
End Sub

Private Sub Cmdquitter_Click()

'fermeture des connexions
Adoconnex.Close

'fermeture de la fenetre
Unload Me

'fermeture du programme
End

End Sub

Private Sub Cmdrecupchamp_Click()
' Variable pour les boucles
Dim i As Integer


'mise à 0
i = 0

'tant que la valeur de i reste inferieure à la valeurs des elements - 1 (1er element à la place 0)
While i <= (lstnomtabl.ListCount - 1)

'si l'element est selectionné
If lstnomtabl.Selected(i) = True Then

'la viariable recupere le nom de la table
        nom_table = lstnomtabl.Text
End If

'incrementation de 1
i = i + 1
Wend
   
If Not nom_table = "" Then
    ' Ouverture de la table selectionnée
    Rcdset.Open nom_table, Adoconnex, adOpenDynamic, adLockOptimistic, adCmdTable

    'Charge dans la listbox les noms des champs de la table selectionnée
    For Each fldLoop In Rcdset.Fields
        ' Pour chaque champs de la table l'ajouter dans la la listbox
        lstnomchamp.AddItem fldLoop.Name
    Next fldLoop
    
    ' le bouton une fois activé devient invisible
    Cmdrecupchamp.Visible = False
Else

'message d'erreur
MsgBox "Veuillez selectionner une table avant d'executer!"
End If
Rcdset.Close

End Sub

Private Sub cmdrqsql_Click()

' Chaine de caractere contenant les requetes SQL
Dim rqSQL As String

'Recupuration de la requête SQL
Dim resSQL2 As Variant

Dim resSQL As Variant
resSQL = "SELECT"

' Indice pour les boucles
Dim i As Integer

Dim valeurs As Variant
Dim valeur As Variant


'Pour tous les champs de la liste
For i = 0 To (Lstchamprecep.ListCount - 1)
' si ce n'est pas le dernier element
    If i <> (Lstchamprecep.ListCount - 1) Then
    ' rqSQL recoi le format SQL
    rqSQL = rqSQL + " " + Lstchamprecep.List(i) + ","
    Else
    'si c'est le dernier
    rqSQL = rqSQL + " " + Lstchamprecep.List(i)
    End If
Next i
'creation de la requete SQL d'affichage des champs selectionné
rqSQL = resSQL + rqSQL + " FROM " + nom_table + ";"

' affichage du SQL dans un Label
LbresSQL.Caption = rqSQL
            
End Sub

Private Sub Cmdtransfert_Click()
Dim i As Integer
i = 0
' Transfert des noms de champs que l'on désire

While i <= lstnomchamp.ListCount - 1
If lstnomchamp.Selected(i) = True Then
'Transfert du champs vers la 2eme listbox
Lstchamprecep.AddItem (lstnomchamp.Text)

' Suppression du champs selectionné
lstnomchamp.RemoveItem i
Else
i = i + 1
End If
Wend

End Sub

Private Sub Form_Load()
Dim i As Integer

' Creation d'une chaine de caractere pour la connection
    Dim strCnn As String
    
    ' Ouverture de la connexion et du RecordSet
    ' Connexion OBDC
    strCnn = "Provider=MSDASQL.1;Persist Security Info=False;DSN=MS Access Database;DBQ=C:\base\biblio.mdb;DefaultDir=C:\base;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;SystemDB=C:\Documents and Settings\ripcurlpro\Bureau\projet d'enteprise\SYSTEM.MDW;UID=ade;"
    Adoconnex.Open strCnn
    
End Sub


j'espere qu'avec tous les commentaires vous comprendrez ce que j'ai programmer merci a vous!
Configuration: WINDOWS XP
VB 6
Répondre à ripcurlpro  Signaler ce message aux modérateurs

Résultats pour [VB6] recuperer le résultat d'une requete SQL

Résultat requête sql en lien url (Résolu) Bonjour, j'ai un tableaux qui affiche les champs d'une requête sql et j'aimerais que les données de la 1ère colonne du tableau soit sous forme d'url qui pointe sur le détail. je m'explique : base de donnée mysql avec tables je... www.commentcamarche.net/forum/affich-4800552-resultat-requete-sql-en-lien-url
Afficher resultat requete sql dans datagrid (Résolu) Bonjour, Je debute sous VB 6 et j'aimerai afficher le résultat d'une requete sql dans un datagrid. J'ai mis ma requete dans une variable string nommée requete. Sur un site j'ai obtenu le code suivant : Sub remplir_grid() Dim sql As... www.commentcamarche.net/forum/affich-6928886-afficher-resultat-requete-sql-dans-datagrid
PHP recuperer variables d'une requete SQL (Résolu) Bonjour, Je suis débutant en PHP. J'aimerais faire une requête SQL pour récupérer des informations et les stocker dans des variables mais ça ne marche pas. Je fais la requête suivante : $request = "SELECT prod_id, var_prod FROM tb_prod"; $result... www.commentcamarche.net/forum/affich-5513738-php-recuperer-variables-d-une-requete-sql

Résultats pour [VB6] recuperer le résultat d'une requete SQL

AIDE !! requete sql VB6 (Résolu)Bonjour à tous, Voila je suis en train de faire une application en vb6 et j'ais une base de donnée. L'application necessite de faire une conexion avec cette base de donnée ------>j'utilise une requete sql : strsql = "select * from... www.commentcamarche.net/forum/affich-6351396-aide-requete-sql-vb6
[Access] : Requete SQL en VBa (Résolu)Salut à tous je cherche de l'aide pour creer une requete SQL dans le VB fournit avec Access en faite je veux ecrire une requete qui tiendra compte de ce que j'aurais choisit dans ma zone de liste exemple: SELECT PC.nom_PC FROM PC WHERE... www.commentcamarche.net/forum/affich-2747677-access-requete-sql-en-vba
[PHP]Double requête SQL (Résolu)Bonjour Dans mon site il ya un petit blem' explication Je fais une première requête SQL m'affichant le nom de l'animateur. Puis j'en fait une autre qui en fonction du nom de l'animateur m'affiche le nom des membres qui... www.commentcamarche.net/forum/affich-2451708-php-double-requete-sql

Résultats pour [VB6] recuperer le résultat d'une requete SQL

Exécution de requêtes avec JDBCExécution d'une requête SQL Pour exécuter une requête SQL, il s'agit dans un premier temps de créer un objet Statement, pouvant être obtenu à partir de l'objet Connection. Un objet ResultSet permettra de récupérer les données en provenance de... www.commentcamarche.net/contents/jdbc/jdbcexec.php3
Accès aux données avec JDBCAccès aux données Une fois la connexion à la base de données établie, il est possible de demander des informations sur le nom des tables et le contenu de chaque colonne, ainsi que d'exécuter des requêtes SQL afin de récupérer des informations, d'en... www.commentcamarche.net/contents/jdbc/jdbcacces.php3