1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2009
    Messages : 76
    Points : 30
    Points
    30

    Par défaut Afficher le résultat d’un Recordset dans un même MsgBox.

    Bonjour,
    Pouvez-vous me donner des exemples sur la méthode vous utiliseriez pour afficher le résultat d’un Recordset dans une boite de message unique ? "flag, compteur etc…".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    While not objRst.EOF
    MsgBox objRst.Fields(0).name & " : " & objRst.Fields(0)
    objRst.MoveNext	
    Wend

  2. #2
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 120
    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 120
    Points : 8 182
    Points
    8 182

    Par défaut

    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim MsG
    While Not objRst.EOF
        MsG = MsG & objRst.Fields(0).Name & " : " & objRst.Fields(0)
        objRst.MoveNext
        If Not objRst.EOF Then MsG = MsG & vbNewLine
    Wend
    MsgBox MsG, vbInformation, "voilà voilà ...."
    par contre il ne faut pas que ton recordset contienne trop de lignes.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2009
    Messages : 76
    Points : 30
    Points
    30

    Par défaut

    Merci ProgElecT
    Comme cité dans ma question, "flag".
    Ceci donne le même résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim MsG
    While Not objRst.EOF
        MsG = MsG & objRst.Fields(0).Name & " : " & objRst.Fields(0)
        objRst.MoveNext
        If (blnFlag = False) Then MsG = MsG & vbNewLine
    Wend
    MsgBox MsG, vbInformation, "Comme-ci, comme-ça ...."
    Il y a-t-il une contre-indication ?

  4. #4
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 120
    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 120
    Points : 8 182
    Points
    8 182

    Par défaut

    Salut
    Citation Envoyé par NeriXs Voir le message
    Merci ProgElecT
    Comme cité dans ma question, "flag".
    Ceci donne le même résultat
    ................
    Il y a-t-il une contre-indication ?
    Je n'ai peut être pas compris ton besoin, le code proposé renvoie bien les enregistrements, voilà une autre façon de faire pour le même résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim T, MsG
    If Not objRst.EOF Then
        MsG = "Nbr d'enregistrement recupéré: " & objRst.RecordCount & vbNewLine
        For T = 1 To objRst.RecordCount
            MsG = MsG & objRst.Fields(0).Name & " : " & objRst.Fields(0)
            objRst.MoveNext
            If Not objRst.EOF Then MsG = MsG & vbNewLine
        Next T
        Else
        MsG = "Aucun enregistrement retourné"
    End If    
    MsgBox MsG, vbInformation, "Comme-ci, comme-ça ...."
    objRst.Fields(0).Name ou objRst.Fields(0) te renvoie la même chose car objRst.Fields(0) te renvoie aussi la valeur par défaut, soit .Name de la colonne.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2009
    Messages : 76
    Points : 30
    Points
    30

    Par défaut

    Nbr d'enregistrement recupéré: -1

  6. #6
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 120
    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 120
    Points : 8 182
    Points
    8 182

    Par défaut

    Salut

    Peux tu nous mettre le code de la requête de connexion d'ouverture de la BDs ainsi que la requête d’ouverture du recordset?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2009
    Messages : 76
    Points : 30
    Points
    30

    Par défaut

    Salut,

    Mon code:

    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
    OPTION Explicit
     
    Dim strConn, objRstDataBase, objConn, MsgDataBase
     
    strConn  = "DRIVER={MySQL ODBC 5.3 ANSI Driver}; Server=192.168.xx.xx; User ID=read; Password=read;"
     
    Set objConn = CreateObject("ADODB.Connection")
    objConn.open strConn
     
    Set objRstDataBase = objConn.Execute ("SHOW DATABASES")
     
    While not objRstDataBase.EOF
    	MsgDataBase =  MsgDataBase & objRstDataBase.Fields(0) 
    	objRstDataBase.MoveNext
    	If Not objRstDataBase.EOF Then MsgDataBase = MsgDataBase & vbNewLine
    Wend
     
    MsgBox "DataBase(s) info." & vbNewLine _
                               & vbNewLine & objRstDataBase.Fields(0).name & " : " _
                               & vbNewLine  & MsgDataBase, vbinformation, "MySQL DataBase(s) info." 
     
    objRstDataBase.Close
    Set objRstDataBase=Nothing
    objConn.Close
    Set objConn=nothing

  8. #8
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 120
    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 120
    Points : 8 182
    Points
    8 182

    Par défaut

    Salut

    Essais ce code, qui vérifit toutes les étapes et donne un message pour chaque problèmes rencontrés
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    OPTION Explicit
        Const adStateClosed = 0     'Indique que l'objet Recordset est fermé.
        'Const adStateOpen = 1       'Indique que l'objet est ouvert.
     
    Sub ConnBds()
    	Dim strConn, objRstDataBase, objConn, MsgDataBase
     
    	strConn  = "DRIVER={MySQL ODBC 5.3 ANSI Driver}; Server=192.168.xx.xx; User ID=read; Password=read;"
     
    	Set objConn = CreateObject("ADODB.Connection")
    	On Error Resume Next
    	objConn.open strConn
    	'Erreur ?
    	If Err.Number <> 0 Then
    		MsgDataBase = "Erreur N°" & Err.Number & vbCrLf _
    		& "Description:" & vbCrLf & Err.Description & vbCrLf _
    		& "Impossible d'ouvrire la BDs "
    		MsgBox MsgDataBase, vbCritical, "Erreur connexion BDs"
    		Exit Sub
    	End if
    	'strConn est bon mais l'ouverture ne fonctionne pas
    	If objConn.State = adStateClosed Then
    		MsgBox "Echec à la connexion de la BDs", vbCritical, "Echec"
    		Exit Sub
    	End if
     
    	'La connexion à la BDs est OK, passage à l'ouverture de la table
    	Set objRstDataBase = objConn.Execute ("SHOW DATABASES")
    	'Erreur ?
    	If Err.Number <> 0 Then
    		MsgDataBase = "Erreur N°" & Err.Number & vbCrLf _
    		& "Description:" & vbCrLf & Err.Description & vbCrLf _
    		& "Impossible d'executer la commande  SHOW DATABASES"
    		MsgBox MsgDataBase, vbCritical, "Erreur SHOW DATABASES"
    		Exit Sub
    	End if
     	'strConn est bon mais l'ouverture ne fonctionne pas
    	If objRstDataBase.State = adStateClosed Then
    		MsgBox "Echec de la commande  SHOW DATABASES", vbCritical, "Echec"
    		Exit Sub
    	End if
     
    	'ICI, à priori, tout est OK
    	Dim T
    	If Not objRst.EOF Then
    		MsgDataBase = "Nbr d'enregistrement recupéré: " & objRst.RecordCount & vbNewLine
    		For T = 1 To objRst.RecordCount
    			MsgDataBase = MsgDataBase & objRst.Fields(0).Name & " : " & objRst.Fields(0)
    			objRst.MoveNext
    			If Not objRst.EOF Then MsgDataBase = MsgDataBase & vbNewLine
    		Next T
    		Else
    		MsgDataBase = "Aucun enregistrement retourné"
    	End If    
    	MsgBox MsgDataBase, vbInformation, "Comme-ci, comme-ça ...."
    	'nettoyage
    	Set objRst = Nothing
    	Set objConn = Nothing
     
    End Sub
    Perso j'e n'ais jamais utilisé la commande .Execute ("SHOW DATABASES") et au vue de
    Citation Envoyé par trouvé sur le web
    SHOW DATABASES répertorie les bases de données sur l'hôte du serveur MySQL. SHOW SCHEMAS est synonyme de SHOW DATABASES . La clause LIKE , si présent, indique les noms de base de données à associer. La clause WHERE peut être donnée pour sélectionner des lignes en utilisant des conditions plus générales, comme indiqué dans la section 24.34, «Extensions à SHOW Statements» .

    Vous ne voyez que les bases de données pour lesquelles vous avez un certain privilège, sauf si vous avez le privilège global SHOW DATABASES . Vous pouvez également obtenir cette liste à l'aide de la commande mysqlshow .

    Si le serveur a été démarré avec l'option --skip-show-database , vous ne pouvez utiliser cette déclaration que si vous avez le privilège SHOW DATABASES .

    MySQL implémente les bases de données en tant que répertoires dans le répertoire de données, donc cette déclaration énumère simplement les répertoires dans cet emplacement. Cependant, la sortie peut inclure des noms de répertoires qui ne correspondent pas aux bases de données réelles.
    je me demande encor ce que retourne cette commande SHOW DATABASES, je ne connais, pour l'avoir utilisé, que la commande OpenSchema pour une BDs access, qui me semble en être l’équivalent.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2009
    Messages : 76
    Points : 30
    Points
    30

    Par défaut

    Salut,
    Le code ne me revoie aucun message, ni erreur.
    Je me penche dessus des que possible.

    Pour info:
    Fin d’instruction attendue "Next T".
    Même résulta avec seulement "Next".

  10. #10
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 120
    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 120
    Points : 8 182
    Points
    8 182

    Par défaut

    d’habitude j’essaie le code que je propose, mais là cela m'est impossible de vérifier.
    Rectification du code, le nom de l'objet recordset ayant changé depuis les différents messages (objRst devenu objRstDataBase), plus suppression du T de Next T
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    OPTION Explicit
        Const adStateClosed = 0     'Indique que l'objet Recordset est fermé.
        'Const adStateOpen = 1       'Indique que l'objet est ouvert.
     
    Sub ConnBds()
    	Dim strConn, objRstDataBase, objConn, MsgDataBase
     
    	strConn  = "DRIVER={MySQL ODBC 5.3 ANSI Driver}; Server=192.168.xx.xx; User ID=read; Password=read;"
     
    	Set objConn = CreateObject("ADODB.Connection")
    	On Error Resume Next
    	objConn.open strConn
    	'Erreur ?
    	If Err.Number <> 0 Then
    		MsgDataBase = "Erreur N°" & Err.Number & vbCrLf _
    		& "Description:" & vbCrLf & Err.Description & vbCrLf _
    		& "Impossible d'ouvrire la BDs "
    		MsgBox MsgDataBase, vbCritical, "Erreur connexion BDs"
    		Exit Sub
    	End if
    	'strConn est bon mais l'ouverture ne fonctionne pas
    	If objConn.State = adStateClosed Then
    		MsgBox "Echec à la connexion de la BDs", vbCritical, "Echec"
    		Exit Sub
    	End if
     
    	'La connexion à la BDs est OK, passage à l'ouverture de la table
    	Set objRstDataBase = objConn.Execute ("SHOW DATABASES")
    	'Erreur ?
    	If Err.Number <> 0 Then
    		MsgDataBase = "Erreur N°" & Err.Number & vbCrLf _
    		& "Description:" & vbCrLf & Err.Description & vbCrLf _
    		& "Impossible d'executer la commande  SHOW DATABASES"
    		MsgBox MsgDataBase, vbCritical, "Erreur SHOW DATABASES"
    		Exit Sub
    	End if
     	'strConn est bon mais l'ouverture ne fonctionne pas
    	If objRstDataBase.State = adStateClosed Then
    		MsgBox "Echec de la commande  SHOW DATABASES", vbCritical, "Echec"
    		Exit Sub
    	End if
     
    	'ICI, à priori, tout est OK
    	Dim T
    	If Not objRstDataBase.EOF Then
    		MsgDataBase = "Nbr d'enregistrement recupéré: " & objRstDataBase.RecordCount & vbNewLine
    		For T = 1 To objRstDataBase.RecordCount
    			MsgDataBase = MsgDataBase & objRstDataBase.Fields(0).Name & " : " & objRstDataBase.Fields(0)
    			objRstDataBase.MoveNext
    			If Not objRstDataBase.EOF Then MsgDataBase = MsgDataBase & vbNewLine
    		Next
    		Else
    		MsgDataBase = "Aucun enregistrement retourné"
    	End If    
    	MsgBox MsgDataBase, vbInformation, "Comme-ci, comme-ça ...."
    	'nettoyage
    	Set objRstDataBase = Nothing
    	Set objConn = Nothing
     
    End Sub

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2009
    Messages : 76
    Points : 30
    Points
    30

    Par défaut

    J’avais remarqué le nom du recordset "objRstDataBase" non reprit sur la gestion des enregistrements.
    Je n’ai toujours aucun message.

  12. #12
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 120
    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 120
    Points : 8 182
    Points
    8 182

    Par défaut

    Citation Envoyé par NeriXs Voir le message
    ....
    Je n’ai toujours aucun message.
    Ne te vexes pas, tu entres bien dans la Sub ConnBds

    Une dernière tentative pour t'aider, vérifier chaque étapes, car il faut trouver si au moins une partie du code est exécuté, et ou il plante.
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    OPTION Explicit
        Const adStateClosed = 0     'Indique que l'objet Recordset est fermé.
        'Const adStateOpen = 1       'Indique que l'objet est ouvert.
     
    Sub ConnBds()
    	MsgBox "Entrée dans la Sub", vbInformation, "Infos" '**************************************
     
    	Dim strConn, objConn, objRstDataBase, MsgDataBase
     
    	strConn  = "DRIVER={MySQL ODBC 5.3 ANSI Driver}; Server=192.168.xx.xx; User ID=read; Password=read;"
    	Set objConn = CreateObject("ADODB.Connection")
     
    	MsgBox "Tentative connexion de la BDs", vbInformation, "Infos" '**************************************
    	On Error Resume Next
    	objConn.open strConn
    	MsgBox "Tentative connexion de la BDs" & vbNewLine & "FAIT", vbInformation, "Infos" '**************************************
    	'Erreur ?
    	If Err.Number <> 0 Then
    		MsgDataBase = "Erreur N°" & Err.Number & vbCrLf _
    		& "Description:" & vbCrLf & Err.Description & vbCrLf _
    		& "Impossible d'ouvrire la BDs "
    		MsgBox MsgDataBase, vbCritical, "Erreur connexion BDs"
    		Exit Sub
    	End if
    	'strConn est bon mais l'ouverture ne fonctionne pas
    	If objConn.State = adStateClosed Then
    		MsgBox "Echec à la connexion de la BDs", vbCritical, "Echec"
    		Exit Sub
    	End if
     
    	'La connexion à la BDs est OK, passage à l'ouverture de la table
    	MsgBox "Tentative .Execute (SHOW DATABASES)", vbInformation, "Infos" '**************************************
    	Set objRstDataBase = objConn.Execute ("SHOW DATABASES")
    	MsgBox "Tentative .Execute (SHOW DATABASES)" & vbNewLine & "FAIT", vbInformation, "Infos" '**************************************
    	'Erreur ?
    	If Err.Number <> 0 Then
    		MsgDataBase = "Erreur N°" & Err.Number & vbCrLf _
    		& "Description:" & vbCrLf & Err.Description & vbCrLf _
    		& "Impossible d'executer la commande  SHOW DATABASES"
    		MsgBox MsgDataBase, vbCritical, "Erreur SHOW DATABASES"
    		Exit Sub
    	End if
     	'strConn est bon mais l'ouverture ne fonctionne pas
    	If objRstDataBase.State = adStateClosed Then
    		MsgBox "Echec de la commande  SHOW DATABASES", vbCritical, "Echec"
    		Exit Sub
    	End if
     
    	'ICI, à priori, tout est OK
    	Dim T
    	If Not objRstDataBase.EOF Then
    		MsgDataBase = "Nbr d'enregistrement recupéré: " & objRstDataBase.RecordCount & vbNewLine
    		For T = 1 To objRstDataBase.RecordCount
    			MsgDataBase = MsgDataBase & objRstDataBase.Fields(0).Name & " : " & objRstDataBase.Fields(0)
    			objRstDataBase.MoveNext
    			If Not objRstDataBase.EOF Then MsgDataBase = MsgDataBase & vbNewLine
    		Next
    		Else
    		MsgDataBase = "Aucun enregistrement retourné"
    	End If    
    	MsgBox MsgDataBase, vbInformation, "Comme-ci, comme-ça ...."
    	'nettoyage
    	Set objRstDataBase = Nothing
    	Set objConn = Nothing
     	MsgBox "dernier message fin de la Sub", vbInformation, "Infos" '**************************************
     
    End Sub
    J'ai ajouté 6 boîtes de messages, dont la dernière fin de la sub, si tu n'obtiens aucun message, la je sèche
    Suivant tes testes sur ce dernier code, je ne te saurai plus d'une grande aide, je ne vois plus ou te guider.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2009
    Messages : 76
    Points : 30
    Points
    30

    Par défaut

    Entrée dans la Sub OK
    Tentative connexion de la BDs OK
    Tentative connexion de la BDs FAIT OK
    Tentative .Execute (SHOW DATABASES) OK
    Tentative .Execute (SHOW DATABASES) FAIT OK

    Nbr d'enregistrement recupéré: -1

    dernier message fin de la Sub OK

    Je n'avais pas de message suite a une erreur de frappe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgDataBase = "Nbr d'enregistrement recupéré: " & objRstDataBase.RecorCount & vbNewLine
    RecordCount avec un "d" ca va mieux

  14. #14
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 120
    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 120
    Points : 8 182
    Points
    8 182

    Par défaut

    Citation Envoyé par NeriXs Voir le message
    [CODE].........
    RecordCount avec un "d" ca va mieux
    je comprend pas RecordCount se termine bien par un T non pas par un D

    Que recherches tu à récupéré dans ton recordset ?
    Un code équivalant apparemment à SHOW DATABASES, pour récupérer toutes les tables contenues dans une BDs Access
    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
        'connexion pour récupération des noms de tables
        Set Schema = Cnx.OpenSchema(adSchemaColumns)
        If Not Schema.EOF Then V = 1 Else V = 0
        U = 0
        While Not Schema.EOF
            If Schema.Fields("Table_NAME") <> "" And NomTable <> Schema.Fields("Table_NAME") Then
                NomTable = Schema.Fields("Table_NAME"): U = U + 1
                'ajoute les noms de tables
                Set oOption = window.Document.createElement("OPTION")
                oOption.Text = NomTable
                oOption.Value = NomTable
                LstTbl.Add (oOption)
            End If
            Schema.MoveNext
        Wend
        Schema.Close
        NbrTbl.Value = U
    désolé à mon tour, je ne saurai plus t'aider pour ce qui est une BDs MySQL.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2009
    Messages : 76
    Points : 30
    Points
    30

    Par défaut

    Peut être un début de piste

    http://www.slxdeveloper.com/page.asp...e&articleid=33


    Apparemment pour connaître le nombre d’enregistrements, il faut modifier une des propriétés*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .CursorLocation = adUseServer

  16. #16
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 120
    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 120
    Points : 8 182
    Points
    8 182

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2009
    Messages : 76
    Points : 30
    Points
    30

    Par défaut

    Bonjour,
    J’ai réécrit la sub en suivant les conseils de ProgElect :
    - Utilisation de la commande ". Open" à la place de ". Execute" qui ne semble pas supporter les constantes "CursorLocationEnum Values" pour la bonne gestion du "RecordCount".
    - Utilisation de "SHOW SCHEMAS" à la place de "SHOW DATABASES" pour éviter tous problème de droits liés au privilège global SHOW DATABASES.
    - Utilisation de la constante "adUseClient sur l'objet "objRstDataBase.CursorLocation" pour initier la bonne valeur du "RecordCount".
    Tout est OK.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    OPTION Explicit
     
    '---- CursorLocationEnum Values ----
    Const adUseClient = 3
    '---- ObjectStateEnum Values ----
    Const adStateClosed = &H00000000
    'Const adStateOpen = &H00000001
     
    Sub ConnBds()
    	MsgBox "Entrée dans la Sub", vbInformation, "Infos" '**************************************
     
    	'declare the variables
    	Dim strConn, objConn, T
    	Dim objRstDataBase
    	Dim SQL
    	Dim MsgDataBase
     
    	'Declare the SQL statement that will query the database
    	SQL = "SHOW SCHEMAS"
     
    	'Define the connection string, specify database driver
    	strConn = "DRIVER={MySQL ODBC 5.3 ANSI Driver};" &_
    			 "SERVER=192.168.xx.xx;" &_
    			 "UID=read;" &_
    			 "PASSWORD=read;" &_
    			 "OPTION=3"
     
    	'create an instance of the ADO connection and recordset objects
    	Set objConn = CreateObject("ADODB.Connection")
    	Set objRstDataBase = CreateObject("ADODB.Recordset")
     
    	MsgBox "Tentative connexion de la BDs", vbInformation, "Infos" '**************************************
    	On Error Resume Next
     
    	'Open the connection to the database
    	objConn.Open strConn
     
    	'Erreur ?
    	If Err.Number <> 0 Then
    		MsgDataBase = "Erreur N°" & Err.Number & vbCrLf _
    		& "Description:" & vbCrLf & Err.Description & vbCrLf _
    		& "Echec à la connexion de la BDs"
    		MsgBox MsgDataBase, vbCritical, "Erreur connexion BDs"
    		Exit Sub
    	End if
    	'strConn est bon mais l'ouverture ne fonctionne pas
    	If objConn.State = adStateClosed Then
    		MsgBox "Impossible d'ouvrire la BDs", vbCritical, "Echec"
    		Exit Sub
    	End If
     
    	'La connexion à la BDs est OK, passage à l'ouverture de la Base
    	MsgBox "Tentative .Open (SHOW SCHEMAS)", vbInformation, "Infos" '**************************************		
     
    	objRstDataBase.CursorLocation = adUseClient
     
    	'Open the recordset object executing the SQL statement and return records
    	objRstDataBase.Open SQL,objConn	
     
    	MsgBox "Tentative .Open (SHOW SCHEMAS)" & vbNewLine & "FAIT", vbInformation, "Infos" '**************************************
    	'Erreur ?
    	If Err.Number <> 0 Then
    		MsgDataBase = "Erreur N°" & Err.Number & vbCrLf _
    		& "Description:" & vbCrLf & Err.Description & vbCrLf _
    		& "Impossible d'executer la commande SHOW SCHEMAS"
    		MsgBox MsgDataBase, vbCritical, "Erreur SHOW SCHEMAS"
    		Exit Sub
    	End if
     	'strConn est bon mais l'ouverture ne fonctionne pas
    	If objRstDataBase.State = adStateClosed Then
    		MsgBox "Echec de la commande  SHOW DATABASES", vbCritical, "Echec"
    		Exit Sub
    	End If
     
    	If Not objRstDataBase.EOF Then
        	MsgDataBase = "Nbr d'enregistrement recupéré: " & objRstDataBase.RecordCount & vbNewLine
        	For T = 1 To objRstDataBase.RecordCount
           		MsgDataBase = MsgDataBase & objRstDataBase.Fields(0).Name & " : " & objRstDataBase.Fields(0)
            	objRstDataBase.MoveNext
            	If Not objRstDataBase.EOF Then MsgDataBase = MsgDataBase & vbNewLine
        	Next
        	Else
        	MsgDataBase = "Aucun enregistrement retourné"
    	End If    
    	MsgBox MsgDataBase, vbInformation, "Comme-ci, comme-ça ...."
     
     
    	'close the connection and recordset objects freeing up resources
    	objRstDataBase.Close
    	Set objRstDataBase=nothing
    	objConn.Close
    	Set objConn=Nothing
    	MsgBox "dernier message fin de la Sub", vbInformation, "Infos" '**************************************	
    End Sub
     
    Call ConnBds()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher le résultat d'une requête sur même page JSP
    Par alaninho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/10/2012, 22h03
  2. Afficher un message d'erreur dans la même page
    Par ADBows dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 02/09/2011, 19h22
  3. Comment afficher un résultat se trouvant dans ax
    Par dreamacus dans le forum x86 16-bits
    Réponses: 1
    Dernier message: 10/05/2009, 22h18
  4. afficher une liste d'image dans la mème interface
    Par soforan dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 05/05/2008, 14h42
  5. Afficher un résultat sur deux critères du même champ
    Par julien6660 dans le forum Access
    Réponses: 2
    Dernier message: 20/04/2006, 11h30

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