Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
As
ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit en
fin
de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
As
ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit en
fin
de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
As
ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit en
fin
de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell As
ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit en
fin de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell As
ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit en
fin de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell As
ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit en
fin de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
JCM explained on 12/22/2004 :
> Bonjour Quasimodo
>>
>> lors d'une précédente question vous m'avez demandé :
>> pouvez-vous explicité votre fonction : ExecSQLExcell
>>
>> et j'ai répondu :
>> Ma fonction : ExecSQLExcell
>>
>> Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
>> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
>> 'Initialisation du RecordSet
>> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
>> 'Ouvre une transaction pour ne pas à avoir à réaliser de commit
>> fin de traitement
>> ADOcnExcel.BeginTrans
>> 'Positionne le curseur côté client
>> ADOrstExcell.CursorLocation = adUseClient
>> 'Vérifie que la connexion passée est bonne
>> Set ADOrstExcell.ActiveConnection = ADOcnExcel
>> On Error GoTo ErrHandle
>> 'Exécute la requête
>> ADOrstExcell.Open MySqlExcell, ADOcnExcel
>> 'Valide la transaction
>> ADOcnExcel.CommitTrans
>> ExecSQLExcell = True
>> Exit Function
>> ErrHandle:
>> ExecSQLExcell = False
>> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
>> vbCritical
>> End Function
>>
>>
>> ET PLUS DE SUITE .........;
>>
>> Cordialement
>> JCM
>
> soir,
> sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
> revvoir cela pour cette semaine ;-)
salut,
oooouuuupss sorry.
J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
est ici) ok
suite ce-soir ;-)
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
JCM explained on 12/22/2004 :
> Bonjour Quasimodo
>>
>> lors d'une précédente question vous m'avez demandé :
>> pouvez-vous explicité votre fonction : ExecSQLExcell
>>
>> et j'ai répondu :
>> Ma fonction : ExecSQLExcell
>>
>> Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
>> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
>> 'Initialisation du RecordSet
>> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
>> 'Ouvre une transaction pour ne pas à avoir à réaliser de commit
>> fin de traitement
>> ADOcnExcel.BeginTrans
>> 'Positionne le curseur côté client
>> ADOrstExcell.CursorLocation = adUseClient
>> 'Vérifie que la connexion passée est bonne
>> Set ADOrstExcell.ActiveConnection = ADOcnExcel
>> On Error GoTo ErrHandle
>> 'Exécute la requête
>> ADOrstExcell.Open MySqlExcell, ADOcnExcel
>> 'Valide la transaction
>> ADOcnExcel.CommitTrans
>> ExecSQLExcell = True
>> Exit Function
>> ErrHandle:
>> ExecSQLExcell = False
>> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
>> vbCritical
>> End Function
>>
>>
>> ET PLUS DE SUITE .........;
>>
>> Cordialement
>> JCM
>
> soir,
> sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
> revvoir cela pour cette semaine ;-)
salut,
oooouuuupss sorry.
J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
est ici) ok
suite ce-soir ;-)
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
JCM explained on 12/22/2004 :
> Bonjour Quasimodo
>>
>> lors d'une précédente question vous m'avez demandé :
>> pouvez-vous explicité votre fonction : ExecSQLExcell
>>
>> et j'ai répondu :
>> Ma fonction : ExecSQLExcell
>>
>> Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
>> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
>> 'Initialisation du RecordSet
>> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
>> 'Ouvre une transaction pour ne pas à avoir à réaliser de commit
>> fin de traitement
>> ADOcnExcel.BeginTrans
>> 'Positionne le curseur côté client
>> ADOrstExcell.CursorLocation = adUseClient
>> 'Vérifie que la connexion passée est bonne
>> Set ADOrstExcell.ActiveConnection = ADOcnExcel
>> On Error GoTo ErrHandle
>> 'Exécute la requête
>> ADOrstExcell.Open MySqlExcell, ADOcnExcel
>> 'Valide la transaction
>> ADOcnExcel.CommitTrans
>> ExecSQLExcell = True
>> Exit Function
>> ErrHandle:
>> ExecSQLExcell = False
>> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
>> vbCritical
>> End Function
>>
>>
>> ET PLUS DE SUITE .........;
>>
>> Cordialement
>> JCM
>
> soir,
> sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
> revvoir cela pour cette semaine ;-)
salut,
oooouuuupss sorry.
J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
est ici) ok
suite ce-soir ;-)
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour voici l'erreur :
Je voudrais afficher les données de la feuille d'un classeur Excell
dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
pourtant elle existe
Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne
Pouvez-vous me dire ou est l'erreur
voici mon code :
le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName
ensuite la feuille est donnée par un affichage dans un combo:
Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing
Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
etc...............
ADOrstExcell.MoveNext
Loop
End Sub
Merci pour votre réponse
Cordialement
JCM
"Quasimodo" a écrit dans le message de
news:
> JCM explained on 12/22/2004 :
> > Bonjour Quasimodo
> >>
> >> lors d'une précédente question vous m'avez demandé :
> >> pouvez-vous explicité votre fonction : ExecSQLExcell
> >>
> >> et j'ai répondu :
> >> Ma fonction : ExecSQLExcell
> >>
> >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
As
> >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> >> 'Initialisation du RecordSet
> >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
en
> >> fin de traitement
> >> ADOcnExcel.BeginTrans
> >> 'Positionne le curseur côté client
> >> ADOrstExcell.CursorLocation = adUseClient
> >> 'Vérifie que la connexion passée est bonne
> >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> >> On Error GoTo ErrHandle
> >> 'Exécute la requête
> >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> >> 'Valide la transaction
> >> ADOcnExcel.CommitTrans
> >> ExecSQLExcell = True
> >> Exit Function
> >> ErrHandle:
> >> ExecSQLExcell = False
> >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
> >> vbCritical
> >> End Function
> >>
> >>
> >> ET PLUS DE SUITE .........;
> >>
> >> Cordialement
> >> JCM
> >
> > soir,
> > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
> > revvoir cela pour cette semaine ;-)
>
> salut,
> oooouuuupss sorry.
> J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
> est ici) ok
> suite ce-soir ;-)
>
> @+Quaz
>
> --
> This is an automatic signature of MesNews.
> Site : http://mesnews.no-ip.com
>
Bonjour voici l'erreur :
Je voudrais afficher les données de la feuille d'un classeur Excell
dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
pourtant elle existe
Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne
Pouvez-vous me dire ou est l'erreur
voici mon code :
le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName
ensuite la feuille est donnée par un affichage dans un combo:
Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing
Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
etc...............
ADOrstExcell.MoveNext
Loop
End Sub
Merci pour votre réponse
Cordialement
JCM
"Quasimodo" <wild_riki.@yahoo.fr> a écrit dans le message de
news:mn.b3127d4cb9b40d89.18602@yahoo.fr...
> JCM explained on 12/22/2004 :
> > Bonjour Quasimodo
> >>
> >> lors d'une précédente question vous m'avez demandé :
> >> pouvez-vous explicité votre fonction : ExecSQLExcell
> >>
> >> et j'ai répondu :
> >> Ma fonction : ExecSQLExcell
> >>
> >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
As
> >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> >> 'Initialisation du RecordSet
> >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
en
> >> fin de traitement
> >> ADOcnExcel.BeginTrans
> >> 'Positionne le curseur côté client
> >> ADOrstExcell.CursorLocation = adUseClient
> >> 'Vérifie que la connexion passée est bonne
> >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> >> On Error GoTo ErrHandle
> >> 'Exécute la requête
> >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> >> 'Valide la transaction
> >> ADOcnExcel.CommitTrans
> >> ExecSQLExcell = True
> >> Exit Function
> >> ErrHandle:
> >> ExecSQLExcell = False
> >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
> >> vbCritical
> >> End Function
> >>
> >>
> >> ET PLUS DE SUITE .........;
> >>
> >> Cordialement
> >> JCM
> >
> > soir,
> > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
> > revvoir cela pour cette semaine ;-)
>
> salut,
> oooouuuupss sorry.
> J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
> est ici) ok
> suite ce-soir ;-)
>
> @+Quaz
>
> --
> This is an automatic signature of MesNews.
> Site : http://mesnews.no-ip.com
>
Bonjour voici l'erreur :
Je voudrais afficher les données de la feuille d'un classeur Excell
dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
pourtant elle existe
Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne
Pouvez-vous me dire ou est l'erreur
voici mon code :
le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName
ensuite la feuille est donnée par un affichage dans un combo:
Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing
Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
etc...............
ADOrstExcell.MoveNext
Loop
End Sub
Merci pour votre réponse
Cordialement
JCM
"Quasimodo" a écrit dans le message de
news:
> JCM explained on 12/22/2004 :
> > Bonjour Quasimodo
> >>
> >> lors d'une précédente question vous m'avez demandé :
> >> pouvez-vous explicité votre fonction : ExecSQLExcell
> >>
> >> et j'ai répondu :
> >> Ma fonction : ExecSQLExcell
> >>
> >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
As
> >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> >> 'Initialisation du RecordSet
> >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
en
> >> fin de traitement
> >> ADOcnExcel.BeginTrans
> >> 'Positionne le curseur côté client
> >> ADOrstExcell.CursorLocation = adUseClient
> >> 'Vérifie que la connexion passée est bonne
> >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> >> On Error GoTo ErrHandle
> >> 'Exécute la requête
> >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> >> 'Valide la transaction
> >> ADOcnExcel.CommitTrans
> >> ExecSQLExcell = True
> >> Exit Function
> >> ErrHandle:
> >> ExecSQLExcell = False
> >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
> >> vbCritical
> >> End Function
> >>
> >>
> >> ET PLUS DE SUITE .........;
> >>
> >> Cordialement
> >> JCM
> >
> > soir,
> > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
> > revvoir cela pour cette semaine ;-)
>
> salut,
> oooouuuupss sorry.
> J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
> est ici) ok
> suite ce-soir ;-)
>
> @+Quaz
>
> --
> This is an automatic signature of MesNews.
> Site : http://mesnews.no-ip.com
>
Salut JCM,
Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique) et
dollar $ :
Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
ADOcnExcel)
Un exemple avec ADO (cocher la référence) :
Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant
chemin du classeur et le nom de la feuille (ça fonctionne que le classeur
soit ouvert ou non) :
Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
Fichier As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
If Not IsMissing(Rs) Then
Set Rs = New ADODB.Recordset
End If
ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Private Sub Command1_Click()
Dim Classeur As String
Dim I As Integer, J As Integer
Classeur = "D:Mon DossierMonClasseur.xls"
Lire Classeur, "Feuil1"
End Sub
Sub Lire(Classeur As String, _
NomFeuille As String)
'relation précoce
Dim ConnectCL As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Champ As ADODB.Field
Dim I As Integer, J As Integer
'ouvre la connection au classeur
ConnecterCLasseur ConnectCL, _
Classeur, _
Rs
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$`", _
ConnectCL
.MoveFirst
MSFlexGrid1.Rows = .RecordCount
MSFlexGrid1.Cols = .Fields.Count
Do While Not .EOF
MSFlexGrid1.Row = I
I = I + 1
For Each Champ In .Fields
MSFlexGrid1.Col = J
If I = 1 Then
MSFlexGrid1.Text = Champ.Name
Else
MSFlexGrid1.Text = Champ.Value
End If
J = J + 1
Next
J = 0
.MoveNext
Loop
End With
ConnectCL.Close
Set Champ = Nothing
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub
Hervé.
"JCM" a écrit dans le message news:
> Bonjour voici l'erreur :
>
> Je voudrais afficher les données de la feuille d'un classeur Excell
existant
> dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
> pourtant elle existe
> Par contre si c'est un classeur créé et rempli par l'appli cela
> Pouvez-vous me dire ou est l'erreur
> voici mon code :
>
> le chemin du classeur est donné par un commandDialog :
> strFileNameExcel = CmdLgMain.fileName
>
> ensuite la feuille est donnée par un affichage dans un combo:
>
> Private Sub CboFeuillesEX_Click()
> 'feuille sélectionnée
> LafeuilleEX = CboFeuillesEX.Text
> 'Vérifie que la connexion est bien fermée
> If ADOcnExcel.state = adStateOpen Then
> ADOcnExcel.Close
> End If
> Set ADOcnExcel = Nothing
>
> Call MyFonctions.InitConnectionExcell
> Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
ADOcnExcel)
>
> 'remplissage de MSExcell
> laligne = 0
> Do Until ADOrstExcell.EOF
> laligne% = laligne + 1
> MSExcell.FixedAlignment(1) = 4
> MSExcell.Rows = laligne + 1
> MSExcell.Row = laligne
> MSExcell.col = 0
> MSExcell.Text = ADOrstExcell("ZONE")
> etc...............
> ADOrstExcell.MoveNext
> Loop
> End Sub
>
> Merci pour votre réponse
> Cordialement
> JCM
> "Quasimodo" a écrit dans le message de
> news:
> > JCM explained on 12/22/2004 :
> > > Bonjour Quasimodo
> > >>
> > >> lors d'une précédente question vous m'avez demandé :
> > >> pouvez-vous explicité votre fonction : ExecSQLExcell
> > >>
> > >> et j'ai répondu :
> > >> Ma fonction : ExecSQLExcell
> > >>
> > >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
ADOrstExcell
> As
> > >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> > >> 'Initialisation du RecordSet
> > >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> > >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
commit
> en
> > >> fin de traitement
> > >> ADOcnExcel.BeginTrans
> > >> 'Positionne le curseur côté client
> > >> ADOrstExcell.CursorLocation = adUseClient
> > >> 'Vérifie que la connexion passée est bonne
> > >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> > >> On Error GoTo ErrHandle
> > >> 'Exécute la requête
> > >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> > >> 'Valide la transaction
> > >> ADOcnExcel.CommitTrans
> > >> ExecSQLExcell = True
> > >> Exit Function
> > >> ErrHandle:
> > >> ExecSQLExcell = False
> > >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
Err.Description,
> > >> vbCritical
> > >> End Function
> > >>
> > >>
> > >> ET PLUS DE SUITE .........;
> > >>
> > >> Cordialement
> > >> JCM
> > >
> > > soir,
> > > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
> > > revvoir cela pour cette semaine ;-)
> >
> > salut,
> > oooouuuupss sorry.
> > J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le
> > est ici) ok
> > suite ce-soir ;-)
> >
> > @+Quaz
> >
> > --
> > This is an automatic signature of MesNews.
> > Site : http://mesnews.no-ip.com
> >
>
>
Salut JCM,
Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique) et
dollar $ :
Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
ADOcnExcel)
Un exemple avec ADO (cocher la référence) :
Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant
chemin du classeur et le nom de la feuille (ça fonctionne que le classeur
soit ouvert ou non) :
Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
Fichier As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
If Not IsMissing(Rs) Then
Set Rs = New ADODB.Recordset
End If
ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Private Sub Command1_Click()
Dim Classeur As String
Dim I As Integer, J As Integer
Classeur = "D:Mon DossierMonClasseur.xls"
Lire Classeur, "Feuil1"
End Sub
Sub Lire(Classeur As String, _
NomFeuille As String)
'relation précoce
Dim ConnectCL As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Champ As ADODB.Field
Dim I As Integer, J As Integer
'ouvre la connection au classeur
ConnecterCLasseur ConnectCL, _
Classeur, _
Rs
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$`", _
ConnectCL
.MoveFirst
MSFlexGrid1.Rows = .RecordCount
MSFlexGrid1.Cols = .Fields.Count
Do While Not .EOF
MSFlexGrid1.Row = I
I = I + 1
For Each Champ In .Fields
MSFlexGrid1.Col = J
If I = 1 Then
MSFlexGrid1.Text = Champ.Name
Else
MSFlexGrid1.Text = Champ.Value
End If
J = J + 1
Next
J = 0
.MoveNext
Loop
End With
ConnectCL.Close
Set Champ = Nothing
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub
Hervé.
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message news:
uu2nMtD6EHA.3828@TK2MSFTNGP09.phx.gbl...
> Bonjour voici l'erreur :
>
> Je voudrais afficher les données de la feuille d'un classeur Excell
existant
> dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
> pourtant elle existe
> Par contre si c'est un classeur créé et rempli par l'appli cela
> Pouvez-vous me dire ou est l'erreur
> voici mon code :
>
> le chemin du classeur est donné par un commandDialog :
> strFileNameExcel = CmdLgMain.fileName
>
> ensuite la feuille est donnée par un affichage dans un combo:
>
> Private Sub CboFeuillesEX_Click()
> 'feuille sélectionnée
> LafeuilleEX = CboFeuillesEX.Text
> 'Vérifie que la connexion est bien fermée
> If ADOcnExcel.state = adStateOpen Then
> ADOcnExcel.Close
> End If
> Set ADOcnExcel = Nothing
>
> Call MyFonctions.InitConnectionExcell
> Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
ADOcnExcel)
>
> 'remplissage de MSExcell
> laligne = 0
> Do Until ADOrstExcell.EOF
> laligne% = laligne + 1
> MSExcell.FixedAlignment(1) = 4
> MSExcell.Rows = laligne + 1
> MSExcell.Row = laligne
> MSExcell.col = 0
> MSExcell.Text = ADOrstExcell("ZONE")
> etc...............
> ADOrstExcell.MoveNext
> Loop
> End Sub
>
> Merci pour votre réponse
> Cordialement
> JCM
> "Quasimodo" <wild_riki.@yahoo.fr> a écrit dans le message de
> news:mn.b3127d4cb9b40d89.18602@yahoo.fr...
> > JCM explained on 12/22/2004 :
> > > Bonjour Quasimodo
> > >>
> > >> lors d'une précédente question vous m'avez demandé :
> > >> pouvez-vous explicité votre fonction : ExecSQLExcell
> > >>
> > >> et j'ai répondu :
> > >> Ma fonction : ExecSQLExcell
> > >>
> > >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
ADOrstExcell
> As
> > >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> > >> 'Initialisation du RecordSet
> > >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> > >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
commit
> en
> > >> fin de traitement
> > >> ADOcnExcel.BeginTrans
> > >> 'Positionne le curseur côté client
> > >> ADOrstExcell.CursorLocation = adUseClient
> > >> 'Vérifie que la connexion passée est bonne
> > >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> > >> On Error GoTo ErrHandle
> > >> 'Exécute la requête
> > >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> > >> 'Valide la transaction
> > >> ADOcnExcel.CommitTrans
> > >> ExecSQLExcell = True
> > >> Exit Function
> > >> ErrHandle:
> > >> ExecSQLExcell = False
> > >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
Err.Description,
> > >> vbCritical
> > >> End Function
> > >>
> > >>
> > >> ET PLUS DE SUITE .........;
> > >>
> > >> Cordialement
> > >> JCM
> > >
> > > soir,
> > > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
> > > revvoir cela pour cette semaine ;-)
> >
> > salut,
> > oooouuuupss sorry.
> > J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le
> > est ici) ok
> > suite ce-soir ;-)
> >
> > @+Quaz
> >
> > --
> > This is an automatic signature of MesNews.
> > Site : http://mesnews.no-ip.com
> >
>
>
Salut JCM,
Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique) et
dollar $ :
Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
ADOcnExcel)
Un exemple avec ADO (cocher la référence) :
Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant
chemin du classeur et le nom de la feuille (ça fonctionne que le classeur
soit ouvert ou non) :
Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
Fichier As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
If Not IsMissing(Rs) Then
Set Rs = New ADODB.Recordset
End If
ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Private Sub Command1_Click()
Dim Classeur As String
Dim I As Integer, J As Integer
Classeur = "D:Mon DossierMonClasseur.xls"
Lire Classeur, "Feuil1"
End Sub
Sub Lire(Classeur As String, _
NomFeuille As String)
'relation précoce
Dim ConnectCL As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Champ As ADODB.Field
Dim I As Integer, J As Integer
'ouvre la connection au classeur
ConnecterCLasseur ConnectCL, _
Classeur, _
Rs
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$`", _
ConnectCL
.MoveFirst
MSFlexGrid1.Rows = .RecordCount
MSFlexGrid1.Cols = .Fields.Count
Do While Not .EOF
MSFlexGrid1.Row = I
I = I + 1
For Each Champ In .Fields
MSFlexGrid1.Col = J
If I = 1 Then
MSFlexGrid1.Text = Champ.Name
Else
MSFlexGrid1.Text = Champ.Value
End If
J = J + 1
Next
J = 0
.MoveNext
Loop
End With
ConnectCL.Close
Set Champ = Nothing
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub
Hervé.
"JCM" a écrit dans le message news:
> Bonjour voici l'erreur :
>
> Je voudrais afficher les données de la feuille d'un classeur Excell
existant
> dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
> pourtant elle existe
> Par contre si c'est un classeur créé et rempli par l'appli cela
> Pouvez-vous me dire ou est l'erreur
> voici mon code :
>
> le chemin du classeur est donné par un commandDialog :
> strFileNameExcel = CmdLgMain.fileName
>
> ensuite la feuille est donnée par un affichage dans un combo:
>
> Private Sub CboFeuillesEX_Click()
> 'feuille sélectionnée
> LafeuilleEX = CboFeuillesEX.Text
> 'Vérifie que la connexion est bien fermée
> If ADOcnExcel.state = adStateOpen Then
> ADOcnExcel.Close
> End If
> Set ADOcnExcel = Nothing
>
> Call MyFonctions.InitConnectionExcell
> Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
ADOcnExcel)
>
> 'remplissage de MSExcell
> laligne = 0
> Do Until ADOrstExcell.EOF
> laligne% = laligne + 1
> MSExcell.FixedAlignment(1) = 4
> MSExcell.Rows = laligne + 1
> MSExcell.Row = laligne
> MSExcell.col = 0
> MSExcell.Text = ADOrstExcell("ZONE")
> etc...............
> ADOrstExcell.MoveNext
> Loop
> End Sub
>
> Merci pour votre réponse
> Cordialement
> JCM
> "Quasimodo" a écrit dans le message de
> news:
> > JCM explained on 12/22/2004 :
> > > Bonjour Quasimodo
> > >>
> > >> lors d'une précédente question vous m'avez demandé :
> > >> pouvez-vous explicité votre fonction : ExecSQLExcell
> > >>
> > >> et j'ai répondu :
> > >> Ma fonction : ExecSQLExcell
> > >>
> > >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
ADOrstExcell
> As
> > >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> > >> 'Initialisation du RecordSet
> > >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> > >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
commit
> en
> > >> fin de traitement
> > >> ADOcnExcel.BeginTrans
> > >> 'Positionne le curseur côté client
> > >> ADOrstExcell.CursorLocation = adUseClient
> > >> 'Vérifie que la connexion passée est bonne
> > >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> > >> On Error GoTo ErrHandle
> > >> 'Exécute la requête
> > >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> > >> 'Valide la transaction
> > >> ADOcnExcel.CommitTrans
> > >> ExecSQLExcell = True
> > >> Exit Function
> > >> ErrHandle:
> > >> ExecSQLExcell = False
> > >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
Err.Description,
> > >> vbCritical
> > >> End Function
> > >>
> > >>
> > >> ET PLUS DE SUITE .........;
> > >>
> > >> Cordialement
> > >> JCM
> > >
> > > soir,
> > > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
> > > revvoir cela pour cette semaine ;-)
> >
> > salut,
> > oooouuuupss sorry.
> > J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le
> > est ici) ok
> > suite ce-soir ;-)
> >
> > @+Quaz
> >
> > --
> > This is an automatic signature of MesNews.
> > Site : http://mesnews.no-ip.com
> >
>
>
Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" a écrit dans le message de
news:%Salut JCM,
Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique) et le
dollar $ :
Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
ADOcnExcel)
Un exemple avec ADO (cocher la référence) :
Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant le
chemin du classeur et le nom de la feuille (ça fonctionne que le classeur
soit ouvert ou non) :
Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
Fichier As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
If Not IsMissing(Rs) Then
Set Rs = New ADODB.Recordset
End If
ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Private Sub Command1_Click()
Dim Classeur As String
Dim I As Integer, J As Integer
Classeur = "D:Mon DossierMonClasseur.xls"
Lire Classeur, "Feuil1"
End Sub
Sub Lire(Classeur As String, _
NomFeuille As String)
'relation précoce
Dim ConnectCL As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Champ As ADODB.Field
Dim I As Integer, J As Integer
'ouvre la connection au classeur
ConnecterCLasseur ConnectCL, _
Classeur, _
Rs
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$`", _
ConnectCL
.MoveFirst
MSFlexGrid1.Rows = .RecordCount
MSFlexGrid1.Cols = .Fields.Count
Do While Not .EOF
MSFlexGrid1.Row = I
I = I + 1
For Each Champ In .Fields
MSFlexGrid1.Col = J
If I = 1 Then
MSFlexGrid1.Text = Champ.Name
Else
MSFlexGrid1.Text = Champ.Value
End If
J = J + 1
Next
J = 0
.MoveNext
Loop
End With
ConnectCL.Close
Set Champ = Nothing
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub
Hervé.
"JCM" a écrit dans le message news:Bonjour voici l'erreur :
Je voudrais afficher les données de la feuille d'un classeur Excell
existant dans un MSFlexgrid et là j'ai un beug : la feuille est
introuvable, et pourtant elle existe
Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne
Pouvez-vous me dire ou est l'erreur
voici mon code :
le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName
ensuite la feuille est donnée par un affichage dans un combo:
Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing
Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
ADOcnExcel)
'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
etc...............
ADOrstExcell.MoveNext
Loop
End Sub
Merci pour votre réponse
Cordialement
JCM
"Quasimodo" a écrit dans le message de
news:JCM explained on 12/22/2004 :Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
As ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit
en fin de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
salut,
oooouuuupss sorry.
J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
est ici) ok
suite ce-soir ;-)
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" <hmsilvePASDEPUB@wanadoo.fr> a écrit dans le message de
news:%23LrCuqE6EHA.2568@TK2MSFTNGP11.phx.gbl...
Salut JCM,
Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique) et le
dollar $ :
Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
ADOcnExcel)
Un exemple avec ADO (cocher la référence) :
Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant le
chemin du classeur et le nom de la feuille (ça fonctionne que le classeur
soit ouvert ou non) :
Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
Fichier As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
If Not IsMissing(Rs) Then
Set Rs = New ADODB.Recordset
End If
ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Private Sub Command1_Click()
Dim Classeur As String
Dim I As Integer, J As Integer
Classeur = "D:Mon DossierMonClasseur.xls"
Lire Classeur, "Feuil1"
End Sub
Sub Lire(Classeur As String, _
NomFeuille As String)
'relation précoce
Dim ConnectCL As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Champ As ADODB.Field
Dim I As Integer, J As Integer
'ouvre la connection au classeur
ConnecterCLasseur ConnectCL, _
Classeur, _
Rs
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$`", _
ConnectCL
.MoveFirst
MSFlexGrid1.Rows = .RecordCount
MSFlexGrid1.Cols = .Fields.Count
Do While Not .EOF
MSFlexGrid1.Row = I
I = I + 1
For Each Champ In .Fields
MSFlexGrid1.Col = J
If I = 1 Then
MSFlexGrid1.Text = Champ.Name
Else
MSFlexGrid1.Text = Champ.Value
End If
J = J + 1
Next
J = 0
.MoveNext
Loop
End With
ConnectCL.Close
Set Champ = Nothing
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub
Hervé.
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message news:
uu2nMtD6EHA.3828@TK2MSFTNGP09.phx.gbl...
Bonjour voici l'erreur :
Je voudrais afficher les données de la feuille d'un classeur Excell
existant dans un MSFlexgrid et là j'ai un beug : la feuille est
introuvable, et pourtant elle existe
Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne
Pouvez-vous me dire ou est l'erreur
voici mon code :
le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName
ensuite la feuille est donnée par un affichage dans un combo:
Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing
Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
ADOcnExcel)
'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
etc...............
ADOrstExcell.MoveNext
Loop
End Sub
Merci pour votre réponse
Cordialement
JCM
"Quasimodo" <wild_riki.@yahoo.fr> a écrit dans le message de
news:mn.b3127d4cb9b40d89.18602@yahoo.fr...
JCM explained on 12/22/2004 :
Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
As ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit
en fin de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
salut,
oooouuuupss sorry.
J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
est ici) ok
suite ce-soir ;-)
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" a écrit dans le message de
news:%Salut JCM,
Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique) et le
dollar $ :
Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
ADOcnExcel)
Un exemple avec ADO (cocher la référence) :
Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant le
chemin du classeur et le nom de la feuille (ça fonctionne que le classeur
soit ouvert ou non) :
Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
Fichier As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
If Not IsMissing(Rs) Then
Set Rs = New ADODB.Recordset
End If
ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Private Sub Command1_Click()
Dim Classeur As String
Dim I As Integer, J As Integer
Classeur = "D:Mon DossierMonClasseur.xls"
Lire Classeur, "Feuil1"
End Sub
Sub Lire(Classeur As String, _
NomFeuille As String)
'relation précoce
Dim ConnectCL As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Champ As ADODB.Field
Dim I As Integer, J As Integer
'ouvre la connection au classeur
ConnecterCLasseur ConnectCL, _
Classeur, _
Rs
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$`", _
ConnectCL
.MoveFirst
MSFlexGrid1.Rows = .RecordCount
MSFlexGrid1.Cols = .Fields.Count
Do While Not .EOF
MSFlexGrid1.Row = I
I = I + 1
For Each Champ In .Fields
MSFlexGrid1.Col = J
If I = 1 Then
MSFlexGrid1.Text = Champ.Name
Else
MSFlexGrid1.Text = Champ.Value
End If
J = J + 1
Next
J = 0
.MoveNext
Loop
End With
ConnectCL.Close
Set Champ = Nothing
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub
Hervé.
"JCM" a écrit dans le message news:Bonjour voici l'erreur :
Je voudrais afficher les données de la feuille d'un classeur Excell
existant dans un MSFlexgrid et là j'ai un beug : la feuille est
introuvable, et pourtant elle existe
Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne
Pouvez-vous me dire ou est l'erreur
voici mon code :
le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName
ensuite la feuille est donnée par un affichage dans un combo:
Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing
Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
ADOcnExcel)
'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
etc...............
ADOrstExcell.MoveNext
Loop
End Sub
Merci pour votre réponse
Cordialement
JCM
"Quasimodo" a écrit dans le message de
news:JCM explained on 12/22/2004 :Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
As ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit
en fin de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
salut,
oooouuuupss sorry.
J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
est ici) ok
suite ce-soir ;-)
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" a écrit dans le message de
news:%
> Salut JCM,
> Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique)
le
> dollar $ :
> Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
> ADOcnExcel)
>
> Un exemple avec ADO (cocher la référence) :
> Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant
le
> chemin du classeur et le nom de la feuille (ça fonctionne que le
> soit ouvert ou non) :
>
> Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
> Fichier As String, _
> Optional Rs)
> Set ConnectBD = New ADODB.Connection
> If Not IsMissing(Rs) Then
> Set Rs = New ADODB.Recordset
> End If
> ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & Fichier & ";" & _
> "Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
> End Sub
>
> Private Sub Command1_Click()
> Dim Classeur As String
> Dim I As Integer, J As Integer
>
> Classeur = "D:Mon DossierMonClasseur.xls"
> Lire Classeur, "Feuil1"
> End Sub
>
> Sub Lire(Classeur As String, _
> NomFeuille As String)
> 'relation précoce
> Dim ConnectCL As ADODB.Connection
> Dim Rs As ADODB.Recordset
> Dim Champ As ADODB.Field
> Dim I As Integer, J As Integer
>
> 'ouvre la connection au classeur
> ConnecterCLasseur ConnectCL, _
> Classeur, _
> Rs
>
> With Rs
> .CursorType = 1
> .LockType = 3
> .Open "SELECT * FROM `" & NomFeuille & "$`", _
> ConnectCL
> .MoveFirst
> MSFlexGrid1.Rows = .RecordCount
> MSFlexGrid1.Cols = .Fields.Count
> Do While Not .EOF
> MSFlexGrid1.Row = I
> I = I + 1
> For Each Champ In .Fields
> MSFlexGrid1.Col = J
> If I = 1 Then
> MSFlexGrid1.Text = Champ.Name
> Else
> MSFlexGrid1.Text = Champ.Value
> End If
> J = J + 1
> Next
> J = 0
> .MoveNext
> Loop
> End With
>
> ConnectCL.Close
>
> Set Champ = Nothing
> Set Rs = Nothing
> Set ConnectCL = Nothing
> End Sub
>
> Hervé.
>
>
> "JCM" a écrit dans le message news:
>
> > Bonjour voici l'erreur :
> >
> > Je voudrais afficher les données de la feuille d'un classeur Excell
> existant
> > dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
> > pourtant elle existe
> > Par contre si c'est un classeur créé et rempli par l'appli cela
fonctionne
> > Pouvez-vous me dire ou est l'erreur
> > voici mon code :
> >
> > le chemin du classeur est donné par un commandDialog :
> > strFileNameExcel = CmdLgMain.fileName
> >
> > ensuite la feuille est donnée par un affichage dans un combo:
> >
> > Private Sub CboFeuillesEX_Click()
> > 'feuille sélectionnée
> > LafeuilleEX = CboFeuillesEX.Text
> > 'Vérifie que la connexion est bien fermée
> > If ADOcnExcel.state = adStateOpen Then
> > ADOcnExcel.Close
> > End If
> > Set ADOcnExcel = Nothing
> >
> > Call MyFonctions.InitConnectionExcell
> > Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
> ADOcnExcel)
> >
> > 'remplissage de MSExcell
> > laligne = 0
> > Do Until ADOrstExcell.EOF
> > laligne% = laligne + 1
> > MSExcell.FixedAlignment(1) = 4
> > MSExcell.Rows = laligne + 1
> > MSExcell.Row = laligne
> > MSExcell.col = 0
> > MSExcell.Text = ADOrstExcell("ZONE")
> > etc...............
> > ADOrstExcell.MoveNext
> > Loop
> > End Sub
> >
> > Merci pour votre réponse
> > Cordialement
> > JCM
> > "Quasimodo" a écrit dans le message de
> > news:
> > > JCM explained on 12/22/2004 :
> > > > Bonjour Quasimodo
> > > >>
> > > >> lors d'une précédente question vous m'avez demandé :
> > > >> pouvez-vous explicité votre fonction : ExecSQLExcell
> > > >>
> > > >> et j'ai répondu :
> > > >> Ma fonction : ExecSQLExcell
> > > >>
> > > >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
> ADOrstExcell
> > As
> > > >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> > > >> 'Initialisation du RecordSet
> > > >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> > > >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
> commit
> > en
> > > >> fin de traitement
> > > >> ADOcnExcel.BeginTrans
> > > >> 'Positionne le curseur côté client
> > > >> ADOrstExcell.CursorLocation = adUseClient
> > > >> 'Vérifie que la connexion passée est bonne
> > > >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> > > >> On Error GoTo ErrHandle
> > > >> 'Exécute la requête
> > > >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> > > >> 'Valide la transaction
> > > >> ADOcnExcel.CommitTrans
> > > >> ExecSQLExcell = True
> > > >> Exit Function
> > > >> ErrHandle:
> > > >> ExecSQLExcell = False
> > > >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
> Err.Description,
> > > >> vbCritical
> > > >> End Function
> > > >>
> > > >>
> > > >> ET PLUS DE SUITE .........;
> > > >>
> > > >> Cordialement
> > > >> JCM
> > > >
> > > > soir,
> > > > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes
> > > > revvoir cela pour cette semaine ;-)
> > >
> > > salut,
> > > oooouuuupss sorry.
> > > J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le
code
> > > est ici) ok
> > > suite ce-soir ;-)
> > >
> > > @+Quaz
> > >
> > > --
> > > This is an automatic signature of MesNews.
> > > Site : http://mesnews.no-ip.com
> > >
> >
> >
>
>
Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" <hmsilvePASDEPUB@wanadoo.fr> a écrit dans le message de
news:%23LrCuqE6EHA.2568@TK2MSFTNGP11.phx.gbl...
> Salut JCM,
> Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique)
le
> dollar $ :
> Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
> ADOcnExcel)
>
> Un exemple avec ADO (cocher la référence) :
> Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant
le
> chemin du classeur et le nom de la feuille (ça fonctionne que le
> soit ouvert ou non) :
>
> Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
> Fichier As String, _
> Optional Rs)
> Set ConnectBD = New ADODB.Connection
> If Not IsMissing(Rs) Then
> Set Rs = New ADODB.Recordset
> End If
> ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & Fichier & ";" & _
> "Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
> End Sub
>
> Private Sub Command1_Click()
> Dim Classeur As String
> Dim I As Integer, J As Integer
>
> Classeur = "D:Mon DossierMonClasseur.xls"
> Lire Classeur, "Feuil1"
> End Sub
>
> Sub Lire(Classeur As String, _
> NomFeuille As String)
> 'relation précoce
> Dim ConnectCL As ADODB.Connection
> Dim Rs As ADODB.Recordset
> Dim Champ As ADODB.Field
> Dim I As Integer, J As Integer
>
> 'ouvre la connection au classeur
> ConnecterCLasseur ConnectCL, _
> Classeur, _
> Rs
>
> With Rs
> .CursorType = 1
> .LockType = 3
> .Open "SELECT * FROM `" & NomFeuille & "$`", _
> ConnectCL
> .MoveFirst
> MSFlexGrid1.Rows = .RecordCount
> MSFlexGrid1.Cols = .Fields.Count
> Do While Not .EOF
> MSFlexGrid1.Row = I
> I = I + 1
> For Each Champ In .Fields
> MSFlexGrid1.Col = J
> If I = 1 Then
> MSFlexGrid1.Text = Champ.Name
> Else
> MSFlexGrid1.Text = Champ.Value
> End If
> J = J + 1
> Next
> J = 0
> .MoveNext
> Loop
> End With
>
> ConnectCL.Close
>
> Set Champ = Nothing
> Set Rs = Nothing
> Set ConnectCL = Nothing
> End Sub
>
> Hervé.
>
>
> "JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message news:
> uu2nMtD6EHA.3828@TK2MSFTNGP09.phx.gbl...
> > Bonjour voici l'erreur :
> >
> > Je voudrais afficher les données de la feuille d'un classeur Excell
> existant
> > dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
> > pourtant elle existe
> > Par contre si c'est un classeur créé et rempli par l'appli cela
fonctionne
> > Pouvez-vous me dire ou est l'erreur
> > voici mon code :
> >
> > le chemin du classeur est donné par un commandDialog :
> > strFileNameExcel = CmdLgMain.fileName
> >
> > ensuite la feuille est donnée par un affichage dans un combo:
> >
> > Private Sub CboFeuillesEX_Click()
> > 'feuille sélectionnée
> > LafeuilleEX = CboFeuillesEX.Text
> > 'Vérifie que la connexion est bien fermée
> > If ADOcnExcel.state = adStateOpen Then
> > ADOcnExcel.Close
> > End If
> > Set ADOcnExcel = Nothing
> >
> > Call MyFonctions.InitConnectionExcell
> > Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
> ADOcnExcel)
> >
> > 'remplissage de MSExcell
> > laligne = 0
> > Do Until ADOrstExcell.EOF
> > laligne% = laligne + 1
> > MSExcell.FixedAlignment(1) = 4
> > MSExcell.Rows = laligne + 1
> > MSExcell.Row = laligne
> > MSExcell.col = 0
> > MSExcell.Text = ADOrstExcell("ZONE")
> > etc...............
> > ADOrstExcell.MoveNext
> > Loop
> > End Sub
> >
> > Merci pour votre réponse
> > Cordialement
> > JCM
> > "Quasimodo" <wild_riki.@yahoo.fr> a écrit dans le message de
> > news:mn.b3127d4cb9b40d89.18602@yahoo.fr...
> > > JCM explained on 12/22/2004 :
> > > > Bonjour Quasimodo
> > > >>
> > > >> lors d'une précédente question vous m'avez demandé :
> > > >> pouvez-vous explicité votre fonction : ExecSQLExcell
> > > >>
> > > >> et j'ai répondu :
> > > >> Ma fonction : ExecSQLExcell
> > > >>
> > > >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
> ADOrstExcell
> > As
> > > >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> > > >> 'Initialisation du RecordSet
> > > >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> > > >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
> commit
> > en
> > > >> fin de traitement
> > > >> ADOcnExcel.BeginTrans
> > > >> 'Positionne le curseur côté client
> > > >> ADOrstExcell.CursorLocation = adUseClient
> > > >> 'Vérifie que la connexion passée est bonne
> > > >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> > > >> On Error GoTo ErrHandle
> > > >> 'Exécute la requête
> > > >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> > > >> 'Valide la transaction
> > > >> ADOcnExcel.CommitTrans
> > > >> ExecSQLExcell = True
> > > >> Exit Function
> > > >> ErrHandle:
> > > >> ExecSQLExcell = False
> > > >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
> Err.Description,
> > > >> vbCritical
> > > >> End Function
> > > >>
> > > >>
> > > >> ET PLUS DE SUITE .........;
> > > >>
> > > >> Cordialement
> > > >> JCM
> > > >
> > > > soir,
> > > > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes
> > > > revvoir cela pour cette semaine ;-)
> > >
> > > salut,
> > > oooouuuupss sorry.
> > > J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le
code
> > > est ici) ok
> > > suite ce-soir ;-)
> > >
> > > @+Quaz
> > >
> > > --
> > > This is an automatic signature of MesNews.
> > > Site : http://mesnews.no-ip.com
> > >
> >
> >
>
>
Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" a écrit dans le message de
news:%
> Salut JCM,
> Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique)
le
> dollar $ :
> Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
> ADOcnExcel)
>
> Un exemple avec ADO (cocher la référence) :
> Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant
le
> chemin du classeur et le nom de la feuille (ça fonctionne que le
> soit ouvert ou non) :
>
> Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
> Fichier As String, _
> Optional Rs)
> Set ConnectBD = New ADODB.Connection
> If Not IsMissing(Rs) Then
> Set Rs = New ADODB.Recordset
> End If
> ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & Fichier & ";" & _
> "Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
> End Sub
>
> Private Sub Command1_Click()
> Dim Classeur As String
> Dim I As Integer, J As Integer
>
> Classeur = "D:Mon DossierMonClasseur.xls"
> Lire Classeur, "Feuil1"
> End Sub
>
> Sub Lire(Classeur As String, _
> NomFeuille As String)
> 'relation précoce
> Dim ConnectCL As ADODB.Connection
> Dim Rs As ADODB.Recordset
> Dim Champ As ADODB.Field
> Dim I As Integer, J As Integer
>
> 'ouvre la connection au classeur
> ConnecterCLasseur ConnectCL, _
> Classeur, _
> Rs
>
> With Rs
> .CursorType = 1
> .LockType = 3
> .Open "SELECT * FROM `" & NomFeuille & "$`", _
> ConnectCL
> .MoveFirst
> MSFlexGrid1.Rows = .RecordCount
> MSFlexGrid1.Cols = .Fields.Count
> Do While Not .EOF
> MSFlexGrid1.Row = I
> I = I + 1
> For Each Champ In .Fields
> MSFlexGrid1.Col = J
> If I = 1 Then
> MSFlexGrid1.Text = Champ.Name
> Else
> MSFlexGrid1.Text = Champ.Value
> End If
> J = J + 1
> Next
> J = 0
> .MoveNext
> Loop
> End With
>
> ConnectCL.Close
>
> Set Champ = Nothing
> Set Rs = Nothing
> Set ConnectCL = Nothing
> End Sub
>
> Hervé.
>
>
> "JCM" a écrit dans le message news:
>
> > Bonjour voici l'erreur :
> >
> > Je voudrais afficher les données de la feuille d'un classeur Excell
> existant
> > dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
> > pourtant elle existe
> > Par contre si c'est un classeur créé et rempli par l'appli cela
fonctionne
> > Pouvez-vous me dire ou est l'erreur
> > voici mon code :
> >
> > le chemin du classeur est donné par un commandDialog :
> > strFileNameExcel = CmdLgMain.fileName
> >
> > ensuite la feuille est donnée par un affichage dans un combo:
> >
> > Private Sub CboFeuillesEX_Click()
> > 'feuille sélectionnée
> > LafeuilleEX = CboFeuillesEX.Text
> > 'Vérifie que la connexion est bien fermée
> > If ADOcnExcel.state = adStateOpen Then
> > ADOcnExcel.Close
> > End If
> > Set ADOcnExcel = Nothing
> >
> > Call MyFonctions.InitConnectionExcell
> > Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
> ADOcnExcel)
> >
> > 'remplissage de MSExcell
> > laligne = 0
> > Do Until ADOrstExcell.EOF
> > laligne% = laligne + 1
> > MSExcell.FixedAlignment(1) = 4
> > MSExcell.Rows = laligne + 1
> > MSExcell.Row = laligne
> > MSExcell.col = 0
> > MSExcell.Text = ADOrstExcell("ZONE")
> > etc...............
> > ADOrstExcell.MoveNext
> > Loop
> > End Sub
> >
> > Merci pour votre réponse
> > Cordialement
> > JCM
> > "Quasimodo" a écrit dans le message de
> > news:
> > > JCM explained on 12/22/2004 :
> > > > Bonjour Quasimodo
> > > >>
> > > >> lors d'une précédente question vous m'avez demandé :
> > > >> pouvez-vous explicité votre fonction : ExecSQLExcell
> > > >>
> > > >> et j'ai répondu :
> > > >> Ma fonction : ExecSQLExcell
> > > >>
> > > >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
> ADOrstExcell
> > As
> > > >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> > > >> 'Initialisation du RecordSet
> > > >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> > > >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
> commit
> > en
> > > >> fin de traitement
> > > >> ADOcnExcel.BeginTrans
> > > >> 'Positionne le curseur côté client
> > > >> ADOrstExcell.CursorLocation = adUseClient
> > > >> 'Vérifie que la connexion passée est bonne
> > > >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> > > >> On Error GoTo ErrHandle
> > > >> 'Exécute la requête
> > > >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> > > >> 'Valide la transaction
> > > >> ADOcnExcel.CommitTrans
> > > >> ExecSQLExcell = True
> > > >> Exit Function
> > > >> ErrHandle:
> > > >> ExecSQLExcell = False
> > > >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
> Err.Description,
> > > >> vbCritical
> > > >> End Function
> > > >>
> > > >>
> > > >> ET PLUS DE SUITE .........;
> > > >>
> > > >> Cordialement
> > > >> JCM
> > > >
> > > > soir,
> > > > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes
> > > > revvoir cela pour cette semaine ;-)
> > >
> > > salut,
> > > oooouuuupss sorry.
> > > J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le
code
> > > est ici) ok
> > > suite ce-soir ;-)
> > >
> > > @+Quaz
> > >
> > > --
> > > This is an automatic signature of MesNews.
> > > Site : http://mesnews.no-ip.com
> > >
> >
> >
>
>
Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" a écrit dans le message de
news:%
> Salut JCM,
> Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique)
le
> dollar $ :
> Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
> ADOcnExcel)
>
> Un exemple avec ADO (cocher la référence) :
> Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant
le
> chemin du classeur et le nom de la feuille (ça fonctionne que le
> soit ouvert ou non) :
>
> Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
> Fichier As String, _
> Optional Rs)
> Set ConnectBD = New ADODB.Connection
> If Not IsMissing(Rs) Then
> Set Rs = New ADODB.Recordset
> End If
> ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & Fichier & ";" & _
> "Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
> End Sub
>
> Private Sub Command1_Click()
> Dim Classeur As String
> Dim I As Integer, J As Integer
>
> Classeur = "D:Mon DossierMonClasseur.xls"
> Lire Classeur, "Feuil1"
> End Sub
>
> Sub Lire(Classeur As String, _
> NomFeuille As String)
> 'relation précoce
> Dim ConnectCL As ADODB.Connection
> Dim Rs As ADODB.Recordset
> Dim Champ As ADODB.Field
> Dim I As Integer, J As Integer
>
> 'ouvre la connection au classeur
> ConnecterCLasseur ConnectCL, _
> Classeur, _
> Rs
>
> With Rs
> .CursorType = 1
> .LockType = 3
> .Open "SELECT * FROM `" & NomFeuille & "$`", _
> ConnectCL
> .MoveFirst
> MSFlexGrid1.Rows = .RecordCount
> MSFlexGrid1.Cols = .Fields.Count
> Do While Not .EOF
> MSFlexGrid1.Row = I
> I = I + 1
> For Each Champ In .Fields
> MSFlexGrid1.Col = J
> If I = 1 Then
> MSFlexGrid1.Text = Champ.Name
> Else
> MSFlexGrid1.Text = Champ.Value
> End If
> J = J + 1
> Next
> J = 0
> .MoveNext
> Loop
> End With
>
> ConnectCL.Close
>
> Set Champ = Nothing
> Set Rs = Nothing
> Set ConnectCL = Nothing
> End Sub
>
> Hervé.
>
>
> "JCM" a écrit dans le message news:
>
> > Bonjour voici l'erreur :
> >
> > Je voudrais afficher les données de la feuille d'un classeur Excell
> existant
> > dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
> > pourtant elle existe
> > Par contre si c'est un classeur créé et rempli par l'appli cela
fonctionne
> > Pouvez-vous me dire ou est l'erreur
> > voici mon code :
> >
> > le chemin du classeur est donné par un commandDialog :
> > strFileNameExcel = CmdLgMain.fileName
> >
> > ensuite la feuille est donnée par un affichage dans un combo:
> >
> > Private Sub CboFeuillesEX_Click()
> > 'feuille sélectionnée
> > LafeuilleEX = CboFeuillesEX.Text
> > 'Vérifie que la connexion est bien fermée
> > If ADOcnExcel.state = adStateOpen Then
> > ADOcnExcel.Close
> > End If
> > Set ADOcnExcel = Nothing
> >
> > Call MyFonctions.InitConnectionExcell
> > Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
> ADOcnExcel)
> >
> > 'remplissage de MSExcell
> > laligne = 0
> > Do Until ADOrstExcell.EOF
> > laligne% = laligne + 1
> > MSExcell.FixedAlignment(1) = 4
> > MSExcell.Rows = laligne + 1
> > MSExcell.Row = laligne
> > MSExcell.col = 0
> > MSExcell.Text = ADOrstExcell("ZONE")
> > etc...............
> > ADOrstExcell.MoveNext
> > Loop
> > End Sub
> >
> > Merci pour votre réponse
> > Cordialement
> > JCM
> > "Quasimodo" a écrit dans le message de
> > news:
> > > JCM explained on 12/22/2004 :
> > > > Bonjour Quasimodo
> > > >>
> > > >> lors d'une précédente question vous m'avez demandé :
> > > >> pouvez-vous explicité votre fonction : ExecSQLExcell
> > > >>
> > > >> et j'ai répondu :
> > > >> Ma fonction : ExecSQLExcell
> > > >>
> > > >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
> ADOrstExcell
> > As
> > > >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> > > >> 'Initialisation du RecordSet
> > > >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> > > >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
> commit
> > en
> > > >> fin de traitement
> > > >> ADOcnExcel.BeginTrans
> > > >> 'Positionne le curseur côté client
> > > >> ADOrstExcell.CursorLocation = adUseClient
> > > >> 'Vérifie que la connexion passée est bonne
> > > >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> > > >> On Error GoTo ErrHandle
> > > >> 'Exécute la requête
> > > >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> > > >> 'Valide la transaction
> > > >> ADOcnExcel.CommitTrans
> > > >> ExecSQLExcell = True
> > > >> Exit Function
> > > >> ErrHandle:
> > > >> ExecSQLExcell = False
> > > >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
> Err.Description,
> > > >> vbCritical
> > > >> End Function
> > > >>
> > > >>
> > > >> ET PLUS DE SUITE .........;
> > > >>
> > > >> Cordialement
> > > >> JCM
> > > >
> > > > soir,
> > > > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes
> > > > revvoir cela pour cette semaine ;-)
> > >
> > > salut,
> > > oooouuuupss sorry.
> > > J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le
code
> > > est ici) ok
> > > suite ce-soir ;-)
> > >
> > > @+Quaz
> > >
> > > --
> > > This is an automatic signature of MesNews.
> > > Site : http://mesnews.no-ip.com
> > >
> >
> >
>
>
Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" <hmsilvePASDEPUB@wanadoo.fr> a écrit dans le message de
news:%23LrCuqE6EHA.2568@TK2MSFTNGP11.phx.gbl...
> Salut JCM,
> Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique)
le
> dollar $ :
> Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
> ADOcnExcel)
>
> Un exemple avec ADO (cocher la référence) :
> Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant
le
> chemin du classeur et le nom de la feuille (ça fonctionne que le
> soit ouvert ou non) :
>
> Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
> Fichier As String, _
> Optional Rs)
> Set ConnectBD = New ADODB.Connection
> If Not IsMissing(Rs) Then
> Set Rs = New ADODB.Recordset
> End If
> ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & Fichier & ";" & _
> "Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
> End Sub
>
> Private Sub Command1_Click()
> Dim Classeur As String
> Dim I As Integer, J As Integer
>
> Classeur = "D:Mon DossierMonClasseur.xls"
> Lire Classeur, "Feuil1"
> End Sub
>
> Sub Lire(Classeur As String, _
> NomFeuille As String)
> 'relation précoce
> Dim ConnectCL As ADODB.Connection
> Dim Rs As ADODB.Recordset
> Dim Champ As ADODB.Field
> Dim I As Integer, J As Integer
>
> 'ouvre la connection au classeur
> ConnecterCLasseur ConnectCL, _
> Classeur, _
> Rs
>
> With Rs
> .CursorType = 1
> .LockType = 3
> .Open "SELECT * FROM `" & NomFeuille & "$`", _
> ConnectCL
> .MoveFirst
> MSFlexGrid1.Rows = .RecordCount
> MSFlexGrid1.Cols = .Fields.Count
> Do While Not .EOF
> MSFlexGrid1.Row = I
> I = I + 1
> For Each Champ In .Fields
> MSFlexGrid1.Col = J
> If I = 1 Then
> MSFlexGrid1.Text = Champ.Name
> Else
> MSFlexGrid1.Text = Champ.Value
> End If
> J = J + 1
> Next
> J = 0
> .MoveNext
> Loop
> End With
>
> ConnectCL.Close
>
> Set Champ = Nothing
> Set Rs = Nothing
> Set ConnectCL = Nothing
> End Sub
>
> Hervé.
>
>
> "JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message news:
> uu2nMtD6EHA.3828@TK2MSFTNGP09.phx.gbl...
> > Bonjour voici l'erreur :
> >
> > Je voudrais afficher les données de la feuille d'un classeur Excell
> existant
> > dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
> > pourtant elle existe
> > Par contre si c'est un classeur créé et rempli par l'appli cela
fonctionne
> > Pouvez-vous me dire ou est l'erreur
> > voici mon code :
> >
> > le chemin du classeur est donné par un commandDialog :
> > strFileNameExcel = CmdLgMain.fileName
> >
> > ensuite la feuille est donnée par un affichage dans un combo:
> >
> > Private Sub CboFeuillesEX_Click()
> > 'feuille sélectionnée
> > LafeuilleEX = CboFeuillesEX.Text
> > 'Vérifie que la connexion est bien fermée
> > If ADOcnExcel.state = adStateOpen Then
> > ADOcnExcel.Close
> > End If
> > Set ADOcnExcel = Nothing
> >
> > Call MyFonctions.InitConnectionExcell
> > Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
> ADOcnExcel)
> >
> > 'remplissage de MSExcell
> > laligne = 0
> > Do Until ADOrstExcell.EOF
> > laligne% = laligne + 1
> > MSExcell.FixedAlignment(1) = 4
> > MSExcell.Rows = laligne + 1
> > MSExcell.Row = laligne
> > MSExcell.col = 0
> > MSExcell.Text = ADOrstExcell("ZONE")
> > etc...............
> > ADOrstExcell.MoveNext
> > Loop
> > End Sub
> >
> > Merci pour votre réponse
> > Cordialement
> > JCM
> > "Quasimodo" <wild_riki.@yahoo.fr> a écrit dans le message de
> > news:mn.b3127d4cb9b40d89.18602@yahoo.fr...
> > > JCM explained on 12/22/2004 :
> > > > Bonjour Quasimodo
> > > >>
> > > >> lors d'une précédente question vous m'avez demandé :
> > > >> pouvez-vous explicité votre fonction : ExecSQLExcell
> > > >>
> > > >> et j'ai répondu :
> > > >> Ma fonction : ExecSQLExcell
> > > >>
> > > >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
> ADOrstExcell
> > As
> > > >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> > > >> 'Initialisation du RecordSet
> > > >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> > > >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
> commit
> > en
> > > >> fin de traitement
> > > >> ADOcnExcel.BeginTrans
> > > >> 'Positionne le curseur côté client
> > > >> ADOrstExcell.CursorLocation = adUseClient
> > > >> 'Vérifie que la connexion passée est bonne
> > > >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> > > >> On Error GoTo ErrHandle
> > > >> 'Exécute la requête
> > > >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> > > >> 'Valide la transaction
> > > >> ADOcnExcel.CommitTrans
> > > >> ExecSQLExcell = True
> > > >> Exit Function
> > > >> ErrHandle:
> > > >> ExecSQLExcell = False
> > > >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
> Err.Description,
> > > >> vbCritical
> > > >> End Function
> > > >>
> > > >>
> > > >> ET PLUS DE SUITE .........;
> > > >>
> > > >> Cordialement
> > > >> JCM
> > > >
> > > > soir,
> > > > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes
> > > > revvoir cela pour cette semaine ;-)
> > >
> > > salut,
> > > oooouuuupss sorry.
> > > J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le
code
> > > est ici) ok
> > > suite ce-soir ;-)
> > >
> > > @+Quaz
> > >
> > > --
> > > This is an automatic signature of MesNews.
> > > Site : http://mesnews.no-ip.com
> > >
> >
> >
>
>
Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" a écrit dans le message de
news:%
> Salut JCM,
> Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique)
le
> dollar $ :
> Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
> ADOcnExcel)
>
> Un exemple avec ADO (cocher la référence) :
> Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant
le
> chemin du classeur et le nom de la feuille (ça fonctionne que le
> soit ouvert ou non) :
>
> Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
> Fichier As String, _
> Optional Rs)
> Set ConnectBD = New ADODB.Connection
> If Not IsMissing(Rs) Then
> Set Rs = New ADODB.Recordset
> End If
> ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & Fichier & ";" & _
> "Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
> End Sub
>
> Private Sub Command1_Click()
> Dim Classeur As String
> Dim I As Integer, J As Integer
>
> Classeur = "D:Mon DossierMonClasseur.xls"
> Lire Classeur, "Feuil1"
> End Sub
>
> Sub Lire(Classeur As String, _
> NomFeuille As String)
> 'relation précoce
> Dim ConnectCL As ADODB.Connection
> Dim Rs As ADODB.Recordset
> Dim Champ As ADODB.Field
> Dim I As Integer, J As Integer
>
> 'ouvre la connection au classeur
> ConnecterCLasseur ConnectCL, _
> Classeur, _
> Rs
>
> With Rs
> .CursorType = 1
> .LockType = 3
> .Open "SELECT * FROM `" & NomFeuille & "$`", _
> ConnectCL
> .MoveFirst
> MSFlexGrid1.Rows = .RecordCount
> MSFlexGrid1.Cols = .Fields.Count
> Do While Not .EOF
> MSFlexGrid1.Row = I
> I = I + 1
> For Each Champ In .Fields
> MSFlexGrid1.Col = J
> If I = 1 Then
> MSFlexGrid1.Text = Champ.Name
> Else
> MSFlexGrid1.Text = Champ.Value
> End If
> J = J + 1
> Next
> J = 0
> .MoveNext
> Loop
> End With
>
> ConnectCL.Close
>
> Set Champ = Nothing
> Set Rs = Nothing
> Set ConnectCL = Nothing
> End Sub
>
> Hervé.
>
>
> "JCM" a écrit dans le message news:
>
> > Bonjour voici l'erreur :
> >
> > Je voudrais afficher les données de la feuille d'un classeur Excell
> existant
> > dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, et
> > pourtant elle existe
> > Par contre si c'est un classeur créé et rempli par l'appli cela
fonctionne
> > Pouvez-vous me dire ou est l'erreur
> > voici mon code :
> >
> > le chemin du classeur est donné par un commandDialog :
> > strFileNameExcel = CmdLgMain.fileName
> >
> > ensuite la feuille est donnée par un affichage dans un combo:
> >
> > Private Sub CboFeuillesEX_Click()
> > 'feuille sélectionnée
> > LafeuilleEX = CboFeuillesEX.Text
> > 'Vérifie que la connexion est bien fermée
> > If ADOcnExcel.state = adStateOpen Then
> > ADOcnExcel.Close
> > End If
> > Set ADOcnExcel = Nothing
> >
> > Call MyFonctions.InitConnectionExcell
> > Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
> ADOcnExcel)
> >
> > 'remplissage de MSExcell
> > laligne = 0
> > Do Until ADOrstExcell.EOF
> > laligne% = laligne + 1
> > MSExcell.FixedAlignment(1) = 4
> > MSExcell.Rows = laligne + 1
> > MSExcell.Row = laligne
> > MSExcell.col = 0
> > MSExcell.Text = ADOrstExcell("ZONE")
> > etc...............
> > ADOrstExcell.MoveNext
> > Loop
> > End Sub
> >
> > Merci pour votre réponse
> > Cordialement
> > JCM
> > "Quasimodo" a écrit dans le message de
> > news:
> > > JCM explained on 12/22/2004 :
> > > > Bonjour Quasimodo
> > > >>
> > > >> lors d'une précédente question vous m'avez demandé :
> > > >> pouvez-vous explicité votre fonction : ExecSQLExcell
> > > >>
> > > >> et j'ai répondu :
> > > >> Ma fonction : ExecSQLExcell
> > > >>
> > > >> Public Function ExecSQLExcell(MySqlExcell As String, ByRef
> ADOrstExcell
> > As
> > > >> ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
> > > >> 'Initialisation du RecordSet
> > > >> If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
> > > >> 'Ouvre une transaction pour ne pas à avoir à réaliser de
> commit
> > en
> > > >> fin de traitement
> > > >> ADOcnExcel.BeginTrans
> > > >> 'Positionne le curseur côté client
> > > >> ADOrstExcell.CursorLocation = adUseClient
> > > >> 'Vérifie que la connexion passée est bonne
> > > >> Set ADOrstExcell.ActiveConnection = ADOcnExcel
> > > >> On Error GoTo ErrHandle
> > > >> 'Exécute la requête
> > > >> ADOrstExcell.Open MySqlExcell, ADOcnExcel
> > > >> 'Valide la transaction
> > > >> ADOcnExcel.CommitTrans
> > > >> ExecSQLExcell = True
> > > >> Exit Function
> > > >> ErrHandle:
> > > >> ExecSQLExcell = False
> > > >> MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr &
> Err.Description,
> > > >> vbCritical
> > > >> End Function
> > > >>
> > > >>
> > > >> ET PLUS DE SUITE .........;
> > > >>
> > > >> Cordialement
> > > >> JCM
> > > >
> > > > soir,
> > > > sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes
> > > > revvoir cela pour cette semaine ;-)
> > >
> > > salut,
> > > oooouuuupss sorry.
> > > J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le
code
> > > est ici) ok
> > > suite ce-soir ;-)
> > >
> > > @+Quaz
> > >
> > > --
> > > This is an automatic signature of MesNews.
> > > Site : http://mesnews.no-ip.com
> > >
> >
> >
>
>
Oups,
J'ai oublié une partie de la proc pour la connexion à la base de données :
Private Sub ConnecterBase(ConnectBD As ADODB.Connection, _
Base As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
Set Rs = New ADODB.Recordset
With ConnectBD
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = Base
.Open
End With
End Sub
Hervé.
"JCM" a écrit dans le message news:Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" a écrit dans le message de
news:%Salut JCM,
Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique) et
le dollar $ :
Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
ADOcnExcel)
Un exemple avec ADO (cocher la référence) :
Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant le
chemin du classeur et le nom de la feuille (ça fonctionne que le classeur
soit ouvert ou non) :
Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
Fichier As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
If Not IsMissing(Rs) Then
Set Rs = New ADODB.Recordset
End If
ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Private Sub Command1_Click()
Dim Classeur As String
Dim I As Integer, J As Integer
Classeur = "D:Mon DossierMonClasseur.xls"
Lire Classeur, "Feuil1"
End Sub
Sub Lire(Classeur As String, _
NomFeuille As String)
'relation précoce
Dim ConnectCL As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Champ As ADODB.Field
Dim I As Integer, J As Integer
'ouvre la connection au classeur
ConnecterCLasseur ConnectCL, _
Classeur, _
Rs
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$`", _
ConnectCL
.MoveFirst
MSFlexGrid1.Rows = .RecordCount
MSFlexGrid1.Cols = .Fields.Count
Do While Not .EOF
MSFlexGrid1.Row = I
I = I + 1
For Each Champ In .Fields
MSFlexGrid1.Col = J
If I = 1 Then
MSFlexGrid1.Text = Champ.Name
Else
MSFlexGrid1.Text = Champ.Value
End If
J = J + 1
Next
J = 0
.MoveNext
Loop
End With
ConnectCL.Close
Set Champ = Nothing
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub
Hervé.
"JCM" a écrit dans le message news:Bonjour voici l'erreur :
Je voudrais afficher les données de la feuille d'un classeur Excell
existant dans un MSFlexgrid et là j'ai un beug : la feuille est
introuvable, et pourtant elle existe
Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne
Pouvez-vous me dire ou est l'erreur
voici mon code :
le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName
ensuite la feuille est donnée par un affichage dans un combo:
Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing
Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
ADOcnExcel)
'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
etc...............
ADOrstExcell.MoveNext
Loop
End Sub
Merci pour votre réponse
Cordialement
JCM
"Quasimodo" a écrit dans le message de
news:JCM explained on 12/22/2004 :Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
As ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit
en fin de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
salut,
oooouuuupss sorry.
J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
est ici) ok
suite ce-soir ;-)
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Oups,
J'ai oublié une partie de la proc pour la connexion à la base de données :
Private Sub ConnecterBase(ConnectBD As ADODB.Connection, _
Base As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
Set Rs = New ADODB.Recordset
With ConnectBD
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = Base
.Open
End With
End Sub
Hervé.
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message news:
uU7Hc6M6EHA.1188@tk2msftngp13.phx.gbl...
Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" <hmsilvePASDEPUB@wanadoo.fr> a écrit dans le message de
news:%23LrCuqE6EHA.2568@TK2MSFTNGP11.phx.gbl...
Salut JCM,
Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique) et
le dollar $ :
Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
ADOcnExcel)
Un exemple avec ADO (cocher la référence) :
Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant le
chemin du classeur et le nom de la feuille (ça fonctionne que le classeur
soit ouvert ou non) :
Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
Fichier As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
If Not IsMissing(Rs) Then
Set Rs = New ADODB.Recordset
End If
ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Private Sub Command1_Click()
Dim Classeur As String
Dim I As Integer, J As Integer
Classeur = "D:Mon DossierMonClasseur.xls"
Lire Classeur, "Feuil1"
End Sub
Sub Lire(Classeur As String, _
NomFeuille As String)
'relation précoce
Dim ConnectCL As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Champ As ADODB.Field
Dim I As Integer, J As Integer
'ouvre la connection au classeur
ConnecterCLasseur ConnectCL, _
Classeur, _
Rs
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$`", _
ConnectCL
.MoveFirst
MSFlexGrid1.Rows = .RecordCount
MSFlexGrid1.Cols = .Fields.Count
Do While Not .EOF
MSFlexGrid1.Row = I
I = I + 1
For Each Champ In .Fields
MSFlexGrid1.Col = J
If I = 1 Then
MSFlexGrid1.Text = Champ.Name
Else
MSFlexGrid1.Text = Champ.Value
End If
J = J + 1
Next
J = 0
.MoveNext
Loop
End With
ConnectCL.Close
Set Champ = Nothing
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub
Hervé.
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message news:
uu2nMtD6EHA.3828@TK2MSFTNGP09.phx.gbl...
Bonjour voici l'erreur :
Je voudrais afficher les données de la feuille d'un classeur Excell
existant dans un MSFlexgrid et là j'ai un beug : la feuille est
introuvable, et pourtant elle existe
Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne
Pouvez-vous me dire ou est l'erreur
voici mon code :
le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName
ensuite la feuille est donnée par un affichage dans un combo:
Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing
Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
ADOcnExcel)
'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
etc...............
ADOrstExcell.MoveNext
Loop
End Sub
Merci pour votre réponse
Cordialement
JCM
"Quasimodo" <wild_riki.@yahoo.fr> a écrit dans le message de
news:mn.b3127d4cb9b40d89.18602@yahoo.fr...
JCM explained on 12/22/2004 :
Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
As ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit
en fin de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
salut,
oooouuuupss sorry.
J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
est ici) ok
suite ce-soir ;-)
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Oups,
J'ai oublié une partie de la proc pour la connexion à la base de données :
Private Sub ConnecterBase(ConnectBD As ADODB.Connection, _
Base As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
Set Rs = New ADODB.Recordset
With ConnectBD
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = Base
.Open
End With
End Sub
Hervé.
"JCM" a écrit dans le message news:Bonjour Hervé
Merci pour ta réponse et ton code qui règle en partie mon problème,
néanmoins quand je lance l'appli j'ai le problème suivant
Mon MSFlexgrid comporte 15 colonnes et les titres des colonnes 5 à 13 ne
s'affichent pas
pour certaines colonnes j'ai données décimales et je voudrais limité
l'affichage à 2 décimales (comme dans mon classeur Excell)
Peux-tu me donner les réponses
D'autre part je voudrais également après l'affichage des données dans le
MSflexgrid, à partir d'un second bouton, transférer la feuille excell dans
une table Access, as-tu un bout de code pour faire se transfert
Encore merci pour ton aide, car cela fait un mois que je galère sur ce
problème et cela ma met dans la M........
Cordialement
JCM
"Hervé" a écrit dans le message de
news:%Salut JCM,
Essai avec le caractère accentué (` AltGr et 7 du pavé Alphanumérique) et
le dollar $ :
Call ExecSQLExcell("select * from `" & LafeuilleEX & "$`", ADOrstExcell,
ADOcnExcel)
Un exemple avec ADO (cocher la référence) :
Pour tester, un MSFlexGrid et un CommandButton sur une Form en modifiant le
chemin du classeur et le nom de la feuille (ça fonctionne que le classeur
soit ouvert ou non) :
Sub ConnecterCLasseur(ConnectBD As ADODB.Connection, _
Fichier As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
If Not IsMissing(Rs) Then
Set Rs = New ADODB.Recordset
End If
ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Private Sub Command1_Click()
Dim Classeur As String
Dim I As Integer, J As Integer
Classeur = "D:Mon DossierMonClasseur.xls"
Lire Classeur, "Feuil1"
End Sub
Sub Lire(Classeur As String, _
NomFeuille As String)
'relation précoce
Dim ConnectCL As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Champ As ADODB.Field
Dim I As Integer, J As Integer
'ouvre la connection au classeur
ConnecterCLasseur ConnectCL, _
Classeur, _
Rs
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$`", _
ConnectCL
.MoveFirst
MSFlexGrid1.Rows = .RecordCount
MSFlexGrid1.Cols = .Fields.Count
Do While Not .EOF
MSFlexGrid1.Row = I
I = I + 1
For Each Champ In .Fields
MSFlexGrid1.Col = J
If I = 1 Then
MSFlexGrid1.Text = Champ.Name
Else
MSFlexGrid1.Text = Champ.Value
End If
J = J + 1
Next
J = 0
.MoveNext
Loop
End With
ConnectCL.Close
Set Champ = Nothing
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub
Hervé.
"JCM" a écrit dans le message news:Bonjour voici l'erreur :
Je voudrais afficher les données de la feuille d'un classeur Excell
existant dans un MSFlexgrid et là j'ai un beug : la feuille est
introuvable, et pourtant elle existe
Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne
Pouvez-vous me dire ou est l'erreur
voici mon code :
le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName
ensuite la feuille est donnée par un affichage dans un combo:
Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing
Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell,
ADOcnExcel)
'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
etc...............
ADOrstExcell.MoveNext
Loop
End Sub
Merci pour votre réponse
Cordialement
JCM
"Quasimodo" a écrit dans le message de
news:JCM explained on 12/22/2004 :Bonjour Quasimodo
lors d'une précédente question vous m'avez demandé :
pouvez-vous explicité votre fonction : ExecSQLExcell
et j'ai répondu :
Ma fonction : ExecSQLExcell
Public Function ExecSQLExcell(MySqlExcell As String, ByRef ADOrstExcell
As ADODB.Recordset, ByRef ADOcnExcel As ADODB.Connection) As Boolean
'Initialisation du RecordSet
If ADOrstExcell.state <> adStateClosed Then ADOrstExcell.Close
'Ouvre une transaction pour ne pas à avoir à réaliser de commit
en fin de traitement
ADOcnExcel.BeginTrans
'Positionne le curseur côté client
ADOrstExcell.CursorLocation = adUseClient
'Vérifie que la connexion passée est bonne
Set ADOrstExcell.ActiveConnection = ADOcnExcel
On Error GoTo ErrHandle
'Exécute la requête
ADOrstExcell.Open MySqlExcell, ADOcnExcel
'Valide la transaction
ADOcnExcel.CommitTrans
ExecSQLExcell = True
Exit Function
ErrHandle:
ExecSQLExcell = False
MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description,
vbCritical
End Function
ET PLUS DE SUITE .........;
Cordialement
JCM
soir,
sorry pas eu le temps, mais je ne vous oublie pas. Je vous promes de
revvoir cela pour cette semaine ;-)
salut,
oooouuuupss sorry.
J'y tape un zoeil maintenant. Pouvez-vous me rappeler l'erreur (le code
est ici) ok
suite ce-soir ;-)
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com