1. #1
    Membre régulier
    Homme Profil pro
    Tech maintenance Info
    Inscrit en
    août 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Tech maintenance Info
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2009
    Messages : 139
    Points : 77
    Points
    77

    Par défaut [VBS] Ouvrir, fermer puis re-ouvrir Recorset et Connection.

    Bonjour,
    Afin de réaliser un test, J’ouvre mon Recordset et ma connexion et appel la variable "ObjTestMySQL".
    Je traite mon test et ferme mon Recordset et ma connexion.
    J’ouvre une deuxième fois mon Recordset et ma connexion et cette fois appel mon autre variable nommée "ObjMySQL".
    L’essai ci-dessous fonctionne, mais j’aimerais traiter via une condition pour éviter tout problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    '# test #############################################################################################
    Set ObjConnection = CreateObject("ADODB.Connection")
    Set ObjRecordset = CreateObject("ADODB.Recordset")
     
    ObjConnection.Open StrConnectionString
     
    ObjTestMySQL = "SELECT * FROM " & StrTableName
    ObjRecordset.Open ObjTestMySQL,ObjConnection
     
    MsgBox ObjRecordset.Fields.Count
     
    ObjRecordset.Close
    Set ObjRecordset=nothing
    ObjConnection.Close
    Set ObjConnection=Nothing
    '# Fin test #############################################################################################
     
    Set ObjConnection = CreateObject("ADODB.Connection")
    Set ObjRecordset = CreateObject("ADODB.Recordset")
     
    ObjConnection.Open StrConnectionString
     
    ObjMySQL = "SELECT * FROM " & StrTableName & " WHERE (`" & StrColumnName & "`)"
    ObjRecordset.Open ObjMySQL,ObjConnection
     
    MsgBox ObjRecordset.Fields(StrColumnName)
     
    ObjRecordset.Close
    Set ObjRecordset=nothing
    ObjConnection.Close
    Set ObjConnection=Nothing
    J’arrive a tester si mon Recoset et ouvert :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ObjRecordset.State = 1 Then MsgBox "Recordset ouvert"
    Mais pas s’il est fermé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ObjRecordset.State = 0 Then MsgBox "Recordset fermé"
    Je ne vois pas trop comment mettre ma condition.

  2. #2
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 169
    Points : 8 462
    Points
    8 462

    Par défaut

    Citation Envoyé par NeriXs Voir le message
    Bonjour,
    .........
    j’aimerais traiter via une condition pour éviter tout problème.
    ..............
    Mais pas s’il est fermé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ObjRecordset.State = 0 Then MsgBox "Recordset fermé"
    Je ne vois pas trop comment mettre ma condition.
    Sachant que:
    AdStateClosed ..........0....Indique que l'objet est fermé.
    adStateOpen .............1....Indique que l'objet est ouvert.
    AdStateConnecting ...2....Indique que l'objet se connecte.
    adStateExecuting .....4.....Indique que l'objet exécute une commande.
    adStateFetching .......8.....Indique que les lignes de l'objet sont récupérées.

    Tu peux faire une condition sur l'objet ObjConnection aussi bien que sur l'objet ObjRecordset

    Il est possible aussi de faire de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If TypeName(ObjConnection) = "Nothing" Then ObjConnection.Open StrConnectionString
    If TypeName(ObjRecordset) = "Nothing" Then ObjRecordset.Open ObjMySQL,ObjConnection
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  3. #3
    Membre régulier
    Homme Profil pro
    Tech maintenance Info
    Inscrit en
    août 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Tech maintenance Info
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2009
    Messages : 139
    Points : 77
    Points
    77

    Par défaut

    Je n’ai pas bien saisi comment avec ton exemple je pouvais passer mes variables selon l’état de mon Recordset?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TypeName(ObjRecordset) = "Nothing" Then ObjRecordset.Open ObjMySQL,ObjConnection
    J’ai tenté ceci, mais sans plus de résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    'Create the SQL string
    ObjMySQL = "SELECT * FROM " & StrTableName
    ObjMySQL = ObjMySQL & ";SELECT * FROM " & StrTableName & " WHERE (`" & StrColumnName & "`)"
     
    'Retrieve the multiple Recordsets
    ObjRecordset.Open ObjMySQL,ObjConnection
     
    'Work with the first Recordset
    Do While Not ObjRecordset.EOF
    	MsgBox ObjRecordset.Fields.Count   
    	ObjRecordset.MoveNext
    Loop
     
    'Move to the next Recordset
    Set ObjRecordset = ObjRecordset.NextRecordset()
     
    'Work with the second Recordset
    Do While Not ObjRecordset.EOF
    	MsgBox ObjRecordset.Fields(StrColumnName)	   
    	ObjRecordset.MoveNext
    Loop
     
    'Clean up...
    ObjRecordset.Close
    Set ObjRecordset=nothing
    ObjConnection.Close
    Set ObjConnection=Nothing

  4. #4
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 169
    Points : 8 462
    Points
    8 462

    Par défaut

    Salut

    Un peu de lecture, pour te permettre d'avancer utilement dans la rédaction des requêtes SQL
    Commandes de base
    Modifier une instruction SQL (ou requête), en Visual Basic
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

Discussions similaires

  1. [Débutant] Ouvrir form2 puis fermer form1; + option RichTextBox
    Par thik78 dans le forum VB.NET
    Réponses: 5
    Dernier message: 23/03/2013, 17h18
  2. [Windev 11] Fermer puis Ouvrir Fenetre
    Par sterix92 dans le forum WinDev
    Réponses: 5
    Dernier message: 23/11/2007, 11h57
  3. Fermer un formulaire puis l'ouvrir à nouveau
    Par nikobell dans le forum IHM
    Réponses: 2
    Dernier message: 19/06/2007, 17h13
  4. Ouvrir / Fermer
    Par jojoboloss dans le forum Access
    Réponses: 3
    Dernier message: 06/02/2006, 12h26
  5. [JTree] Ouvrir/Fermer l'ensemble des noeuds
    Par Math_Caen dans le forum Arbres
    Réponses: 3
    Dernier message: 07/04/2003, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo