rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

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

  Posté par 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:\Document­s 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
Logiciels pertinents trouvés dans les téléchargements
Télécharger Visual Basic 6 Runtime (VB6 DLL) 6.0 SP5Visual Basic 6 Runtime (VB6 DLL) - Le Runtime Visual Basic 6 contient l'ensemble des librairies (DLL) nécessaires pour exécuter des programmes écrits en...Catégorie: Librairies (DLL)
Licence: Freeware/gratuit
Télécharger PC Inspector File Recovery 4.0PC Inspector File Recovery - Tout comme SoftPerfect File Recovery ou HandyRecovery , ce logiciel est capable de récupérer des fichiers effacés, mais...Catégorie: Sauvegarde
Licence: Freeware/gratuit
Télécharger Restoration 2.5.14Restoration - Restoration est un outil gratuit, en anglais seulement, permettant de récupérer les données effacées, même après avoir vidé...Catégorie: Sauvegarde
Licence: Freeware/gratuit
Télécharger SoftPerfect File Recovery 1.2SoftPerfect File Recovery - SoftPerfect File Recovery (seulement 253 ko) permet de récupérer des fichiers effacés par inadvertance, même après vidage de...Catégorie: Sauvegarde
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [VB6] recuperer le résultat d'une requete SQL »