Bonjour à tous,
Voici mon problème
r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir afficher
un ProgressBar
Ma solution a été de:
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
Mais il existe t-il une autre façon???
Merci de vos réponse
J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
If DB.State = adStateClosed Then
Select Case strBaseDeDonnéeType
Case "ACCESS"
'Access
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
strCheminBase & strNomBase
Case "ODBC"
'ODBC
DB.Open "Provider=MSDASQL.1;Persist Security Infoúlse;Data
Source=surgest;Initial Catalog=" &
strCheminBase & strNomBase
Case "SQLServeur"
'DB.Open "Provider=SQLOLEDB;data Source=<name of your SQL
Server>;"
' DB.Open "Provider=SQLOLEDB;data Source=" & strCheminBase &
strNomBase
End Select
End If
Bonjour à tous,
Voici mon problème
r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir afficher
un ProgressBar
Ma solution a été de:
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
Mais il existe t-il une autre façon???
Merci de vos réponse
J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
If DB.State = adStateClosed Then
Select Case strBaseDeDonnéeType
Case "ACCESS"
'Access
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
strCheminBase & strNomBase
Case "ODBC"
'ODBC
DB.Open "Provider=MSDASQL.1;Persist Security Infoúlse;Data
Source=surgest;Initial Catalog=" &
strCheminBase & strNomBase
Case "SQLServeur"
'DB.Open "Provider=SQLOLEDB;data Source=<name of your SQL
Server>;"
' DB.Open "Provider=SQLOLEDB;data Source=" & strCheminBase &
strNomBase
End Select
End If
Bonjour à tous,
Voici mon problème
r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir afficher
un ProgressBar
Ma solution a été de:
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
Mais il existe t-il une autre façon???
Merci de vos réponse
J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
If DB.State = adStateClosed Then
Select Case strBaseDeDonnéeType
Case "ACCESS"
'Access
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
strCheminBase & strNomBase
Case "ODBC"
'ODBC
DB.Open "Provider=MSDASQL.1;Persist Security Infoúlse;Data
Source=surgest;Initial Catalog=" &
strCheminBase & strNomBase
Case "SQLServeur"
'DB.Open "Provider=SQLOLEDB;data Source=<name of your SQL
Server>;"
' DB.Open "Provider=SQLOLEDB;data Source=" & strCheminBase &
strNomBase
End Select
End If
Yves has brought this to us :
> Bonjour à tous,
>
> Voici mon problème
>
> r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
> un ProgressBar
>
> Ma solution a été de:
>
> If r.AbsolutePosition <> adPosUnknown Then
> ProgressBar.Visible = True
> ProgressBar.Max = r.RecordCount
> End If
>
> Mais il existe t-il une autre façon???
>
> Merci de vos réponse
>
> J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
>
> If DB.State = adStateClosed Then
>
> Select Case strBaseDeDonnéeType
> Case "ACCESS"
> 'Access
> DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
> strCheminBase & strNomBase
> Case "ODBC"
> 'ODBC
> DB.Open "Provider=MSDASQL.1;Persist Security
> Source=surgest;Initial Catalog=" &
> strCheminBase & strNomBase
> Case "SQLServeur"
> 'DB.Open "Provider=SQLOLEDB;data Source=<name of your
> Server>;"
> ' DB.Open "Provider=SQLOLEDB;data Source=" &
> strNomBase
> End Select
>
> End If
Bonjour,
oui, fin peut être. Je pense par exemple à initialiser la propriété max
du controle avec le nombre d'enregistrement retourné par le recordset.
Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
mouvement et d'autres info via un évent, il faut juste traper dans
cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
déplacement et mettre à jour le controle.
@+ Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Yves has brought this to us :
> Bonjour à tous,
>
> Voici mon problème
>
> r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
> un ProgressBar
>
> Ma solution a été de:
>
> If r.AbsolutePosition <> adPosUnknown Then
> ProgressBar.Visible = True
> ProgressBar.Max = r.RecordCount
> End If
>
> Mais il existe t-il une autre façon???
>
> Merci de vos réponse
>
> J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
>
> If DB.State = adStateClosed Then
>
> Select Case strBaseDeDonnéeType
> Case "ACCESS"
> 'Access
> DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
> strCheminBase & strNomBase
> Case "ODBC"
> 'ODBC
> DB.Open "Provider=MSDASQL.1;Persist Security
> Source=surgest;Initial Catalog=" &
> strCheminBase & strNomBase
> Case "SQLServeur"
> 'DB.Open "Provider=SQLOLEDB;data Source=<name of your
> Server>;"
> ' DB.Open "Provider=SQLOLEDB;data Source=" &
> strNomBase
> End Select
>
> End If
Bonjour,
oui, fin peut être. Je pense par exemple à initialiser la propriété max
du controle avec le nombre d'enregistrement retourné par le recordset.
Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
mouvement et d'autres info via un évent, il faut juste traper dans
cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
déplacement et mettre à jour le controle.
@+ Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Yves has brought this to us :
> Bonjour à tous,
>
> Voici mon problème
>
> r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
> un ProgressBar
>
> Ma solution a été de:
>
> If r.AbsolutePosition <> adPosUnknown Then
> ProgressBar.Visible = True
> ProgressBar.Max = r.RecordCount
> End If
>
> Mais il existe t-il une autre façon???
>
> Merci de vos réponse
>
> J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
>
> If DB.State = adStateClosed Then
>
> Select Case strBaseDeDonnéeType
> Case "ACCESS"
> 'Access
> DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
> strCheminBase & strNomBase
> Case "ODBC"
> 'ODBC
> DB.Open "Provider=MSDASQL.1;Persist Security
> Source=surgest;Initial Catalog=" &
> strCheminBase & strNomBase
> Case "SQLServeur"
> 'DB.Open "Provider=SQLOLEDB;data Source=<name of your
> Server>;"
> ' DB.Open "Provider=SQLOLEDB;data Source=" &
> strNomBase
> End Select
>
> End If
Bonjour,
oui, fin peut être. Je pense par exemple à initialiser la propriété max
du controle avec le nombre d'enregistrement retourné par le recordset.
Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
mouvement et d'autres info via un évent, il faut juste traper dans
cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
déplacement et mettre à jour le controle.
@+ Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
je suis en ODBC
DB.Open "Provider=MSDASQL.1;Persist Security Infoúlse;Data
Source=surgest;Initial Catalog=" & strCheminBase & strNomBase
Je n'ai pas ....
RecordChangeComplete, MoveComplete
r.Open Req, DB, adOpenStatic, adLockOptimistic
sbrAnalyse.PanelText(1) = "Nombre d'enregistrements trouvés :" +
str(Trim( _
r.RecordCount))
If r.RecordCount > 0 Then
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
"Quasimodo" a écrit dans le message de
news:Yves has brought this to us :Bonjour à tous,
Voici mon problème
r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
afficher un ProgressBar
Ma solution a été de:
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
Mais il existe t-il une autre façon???
Merci de vos réponse
J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
If DB.State = adStateClosed Then
Select Case strBaseDeDonnéeType
Case "ACCESS"
'Access
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
strCheminBase & strNomBase
Case "ODBC"
'ODBC
DB.Open "Provider=MSDASQL.1;Persist Security
Infoúlse;Data Source=surgest;Initial Catalog=" &
strCheminBase & strNomBase
Case "SQLServeur"
'DB.Open "Provider=SQLOLEDB;data Source=<name of your SQL
Server>;"
' DB.Open "Provider=SQLOLEDB;data Source=" & strCheminBase
& strNomBase
End Select
End If
Bonjour,
oui, fin peut être. Je pense par exemple à initialiser la propriété max
du controle avec le nombre d'enregistrement retourné par le recordset.
Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
mouvement et d'autres info via un évent, il faut juste traper dans
cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
déplacement et mettre à jour le controle.
@+ Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
je suis en ODBC
DB.Open "Provider=MSDASQL.1;Persist Security Infoúlse;Data
Source=surgest;Initial Catalog=" & strCheminBase & strNomBase
Je n'ai pas ....
RecordChangeComplete, MoveComplete
r.Open Req, DB, adOpenStatic, adLockOptimistic
sbrAnalyse.PanelText(1) = "Nombre d'enregistrements trouvés :" +
str(Trim( _
r.RecordCount))
If r.RecordCount > 0 Then
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
"Quasimodo" <wild_riki.@yahoo.fr> a écrit dans le message de
news:mn.6c877d4aa36a9947.18602@yahoo.fr...
Yves has brought this to us :
Bonjour à tous,
Voici mon problème
r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
afficher un ProgressBar
Ma solution a été de:
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
Mais il existe t-il une autre façon???
Merci de vos réponse
J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
If DB.State = adStateClosed Then
Select Case strBaseDeDonnéeType
Case "ACCESS"
'Access
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
strCheminBase & strNomBase
Case "ODBC"
'ODBC
DB.Open "Provider=MSDASQL.1;Persist Security
Infoúlse;Data Source=surgest;Initial Catalog=" &
strCheminBase & strNomBase
Case "SQLServeur"
'DB.Open "Provider=SQLOLEDB;data Source=<name of your SQL
Server>;"
' DB.Open "Provider=SQLOLEDB;data Source=" & strCheminBase
& strNomBase
End Select
End If
Bonjour,
oui, fin peut être. Je pense par exemple à initialiser la propriété max
du controle avec le nombre d'enregistrement retourné par le recordset.
Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
mouvement et d'autres info via un évent, il faut juste traper dans
cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
déplacement et mettre à jour le controle.
@+ Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
je suis en ODBC
DB.Open "Provider=MSDASQL.1;Persist Security Infoúlse;Data
Source=surgest;Initial Catalog=" & strCheminBase & strNomBase
Je n'ai pas ....
RecordChangeComplete, MoveComplete
r.Open Req, DB, adOpenStatic, adLockOptimistic
sbrAnalyse.PanelText(1) = "Nombre d'enregistrements trouvés :" +
str(Trim( _
r.RecordCount))
If r.RecordCount > 0 Then
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
"Quasimodo" a écrit dans le message de
news:Yves has brought this to us :Bonjour à tous,
Voici mon problème
r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
afficher un ProgressBar
Ma solution a été de:
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
Mais il existe t-il une autre façon???
Merci de vos réponse
J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
If DB.State = adStateClosed Then
Select Case strBaseDeDonnéeType
Case "ACCESS"
'Access
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
strCheminBase & strNomBase
Case "ODBC"
'ODBC
DB.Open "Provider=MSDASQL.1;Persist Security
Infoúlse;Data Source=surgest;Initial Catalog=" &
strCheminBase & strNomBase
Case "SQLServeur"
'DB.Open "Provider=SQLOLEDB;data Source=<name of your SQL
Server>;"
' DB.Open "Provider=SQLOLEDB;data Source=" & strCheminBase
& strNomBase
End Select
End If
Bonjour,
oui, fin peut être. Je pense par exemple à initialiser la propriété max
du controle avec le nombre d'enregistrement retourné par le recordset.
Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
mouvement et d'autres info via un évent, il faut juste traper dans
cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
déplacement et mettre à jour le controle.
@+ Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Yves formulated on Wednesday :
> je suis en ODBC
> DB.Open "Provider=MSDASQL.1;Persist Security
> Source=surgest;Initial Catalog=" & strCheminBase & strNomBase
>
>
> Je n'ai pas ....
>
> RecordChangeComplete, MoveComplete
>
> r.Open Req, DB, adOpenStatic, adLockOptimistic
> sbrAnalyse.PanelText(1) = "Nombre d'enregistrements trouvés :" +
> str(Trim( _
> r.RecordCount))
>
> If r.RecordCount > 0 Then
> If r.AbsolutePosition <> adPosUnknown Then
> ProgressBar.Visible = True
> ProgressBar.Max = r.RecordCount
> End If
>
>
>
> "Quasimodo" a écrit dans le message de
> news:
>> Yves has brought this to us :
>>> Bonjour à tous,
>>>
>>> Voici mon problème
>>>
>>> r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
>>> afficher un ProgressBar
>>>
>>> Ma solution a été de:
>>>
>>> If r.AbsolutePosition <> adPosUnknown Then
>>> ProgressBar.Visible = True
>>> ProgressBar.Max = r.RecordCount
>>> End If
>>>
>>> Mais il existe t-il une autre façon???
>>>
>>> Merci de vos réponse
>>>
>>> J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
>>>
>>> If DB.State = adStateClosed Then
>>>
>>> Select Case strBaseDeDonnéeType
>>> Case "ACCESS"
>>> 'Access
>>> DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source " &
>>> strCheminBase & strNomBase
>>> Case "ODBC"
>>> 'ODBC
>>> DB.Open "Provider=MSDASQL.1;Persist Security
>>> Infoúlse;Data Source=surgest;Initial Catalog=" &
>>> strCheminBase & strNomBase
>>> Case "SQLServeur"
>>> 'DB.Open "Provider=SQLOLEDB;data Source=<name of your
>>> Server>;"
>>> ' DB.Open "Provider=SQLOLEDB;data Source=" &
>>> & strNomBase
>>> End Select
>>>
>>> End If
>>
>> Bonjour,
>> oui, fin peut être. Je pense par exemple à initialiser la propriété max
>> du controle avec le nombre d'enregistrement retourné par le recordset.
>> Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
>> mouvement et d'autres info via un évent, il faut juste traper dans
>> cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
>> déplacement et mettre à jour le controle.
>>
>> @+ Quaz
>>
>> --
>> This is an automatic signature of MesNews.
>> Site : http://mesnews.no-ip.com
re,
oui c'est normale, il faut déclarer votre recordset dans la partie
global de votre module avec l'option withevents.
Voici un chti exemple, qui fonctionne très bien.
Créer deux textbox : txtDB et txtlog
Créer 9 boutons : cmdOpenConnection, cmdClose, CreateRecord,
cmdCloseRecordset, cmdActualPos, cmdMovePrevious, cmdMoveNext,
cmdMoveFirst, cmdMoveLast
Créer un commondialogue : cmdlgMain
Créer une progresbar : ProgressBar
Ajouter les références : Microsoft ActiveX Data Objects 2.8 Library
Ajouter les controls : Microsoft Windows Common Controls 6.0 (SP6) et
Microsoft Common Dialog Control 6.0 (SP6)
Voici le chti code à mettre dans le form principal :
--------------------------------------------------------------------------
Option Explicit
Private m_lngNbreRecords As Long
Private WithEvents m_objRs As ADODB.Recordset
Private WithEvents m_objCon As ADODB.Connection
Private const c_strLaStringSQL as string = "Select * from latable"
Private Sub MakeReasonMove(ByVal adReason As ADODB.EventStatusEnum,
ByVal strMethodeCalled As String)
Select Case adReason
Case adRsnMoveFirst
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveFirst]." & vbCrLf
Case adRsnMoveLast
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveLast]." & vbCrLf
Case adRsnMoveNext
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveNext]." & vbCrLf
Case adRsnMovePrevious
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MovePrevious]." & vbCrLf
Case adRsnMove
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
Move]." & vbCrLf
End Select
End Sub
Private Sub cmdMoveFirst_Click()
m_objRs.MoveFirst
ProgressBar.Value = 0
End Sub
Private Sub cmdMoveLast_Click()
m_objRs.MoveLast
ProgressBar.Value = m_objRs.RecordCount
End Sub
Private Sub cmdMoveNext_Click()
If Not m_objRs.EOF Then
m_objRs.MoveNext
If ProgressBar.Value < ProgressBar.Max Then
ProgressBar.Value = ProgressBar.Value + 1
End If
End If
End Sub
Private Sub cmdMovePrevious_Click()
If Not m_objRs.BOF Then
m_objRs.MovePrevious
If ProgressBar.Value > 0 Then
ProgressBar.Value = ProgressBar.Value - 1
End If
End If
End Sub
Private Sub m_objRs_MoveComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As
ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
MakeReasonMove adReason, "MoveComplete"
End Sub
Private Sub m_objRs_RecordChangeComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal cRecords As Long, ByVal pError As
ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As
ADODB.Recordset)
MakeReasonMove adReason, "RecordChangeComplete"
End Sub
Private Sub cmdActualPos_Click()
Select Case m_objRs.AbsolutePosition
Case adPosBOF
txtlog.Text = txtlog.Text & "Position actuel : BOF." & vbCrLf
Case adPosEOF
txtlog.Text = txtlog.Text & "Position actuel : EOF." & vbCrLf
Case adPosUnknown
txtlog.Text = txtlog.Text & "Position actuel : Unknown." &
vbCrLf
End Select
End Sub
Private Sub cmdCloseRecordset_Click()
m_objRs.Close
Set m_objRs = Nothing
txtlog.Text = txtlog.Text & "Recordset fermé." & vbCrLf
End Sub
Private Sub CreateRecord_Click()
Set m_objRs = New ADODB.Recordset
m_objRs.Open c_strLaStringSQL, m_objCon, adOpenStatic,
adLockOptimistic
m_lngNbreRecords = m_objRs.RecordCount
ProgressBar.Max = m_lngNbreRecords
ProgressBar.Min = 0
txtlog.Text = txtlog.Text & "Nombre d'enregistrements trouvés : " &
Trim(CStr(m_objRs.RecordCount)) & vbCrLf
End Sub
Private Sub MakeStatus(ByVal adStatus As ADODB.EventStatusEnum, ByVal
strMethodeCalled As String)
Select Case adStatus
Case adStatusOK
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status Ok."
& vbCrLf
Case adStatusCancel
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Cancel." & vbCrLf
Case adStatusCantDeny
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
CantDeny." & vbCrLf
Case adStatusErrorsOccurred
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Errors Occurred." & vbCrLf
Case adStatusUnwantedEvent
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Unwanted Event." & vbCrLf
End Select
End Sub
Private Sub cmdClose_Click()
m_objCon.Close
Set m_objCon = Nothing
End Sub
Private Sub cmdOpenConnection_Click()
cmdlgMain.DefaultExt = ".mdb"
cmdlgMain.Filter = "MS Access (*.mdb)|*.mdb"
cmdlgMain.ShowOpen
txtDB.Text = cmdlgMain.FileName
If (Trim(txtDB.Text) = "") Then Exit Sub
If (Dir(txtDB.Text) = "") Then Exit Sub
Set m_objCon = New ADODB.Connection
m_objCon.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
txtDB.Text ';uid=nonDusager;pwd=motDePasse;"
End Sub
Private Sub m_objCon_ConnectComplete(ByVal pError As ADODB.Error,
adStatus As ADODB.EventStatusEnum, ByVal pConnection As
ADODB.Connection)
MakeStatus adStatus, "ConnectComplete"
End Sub
Private Sub m_objCon_Disconnect(adStatus As ADODB.EventStatusEnum,
ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "Disconnect"
End Sub
Private Sub m_objCon_InfoMessage(ByVal pError As ADODB.Error, adStatus
As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "InfoMessage"
End Sub
Private Sub m_objCon_WillConnect(ConnectionString As String, UserID As
String, Password As String, Options As Long, adStatus As
ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
Dim strData As String
Select Case adStatus
Case adStatusOK
strData = "WillConnect : [Status Ok]"
Case adStatusCancel
strData = "WillConnect : [Status Cancel]"
Case adStatusCantDeny
strData = "WillConnect : [Status CantDeny]"
Case adStatusErrorsOccurred
strData = "WillConnect : [Status Errors Occurred]"
Case adStatusUnwantedEvent
strData = "WillConnect : [Status Unwanted Event]"
End Select
strData = strData & "[Connection string : " & ConnectionString &
"]" & _
"[UserID : " & UserID & "]" & _
"[Password : " & Password & "]" & _
"[Options : " & Options & "]"
txtlog.Text = txtlog.Text & strData & vbCrLf
End Sub
--------------------------------------------------------------------------
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Yves formulated on Wednesday :
> je suis en ODBC
> DB.Open "Provider=MSDASQL.1;Persist Security
> Source=surgest;Initial Catalog=" & strCheminBase & strNomBase
>
>
> Je n'ai pas ....
>
> RecordChangeComplete, MoveComplete
>
> r.Open Req, DB, adOpenStatic, adLockOptimistic
> sbrAnalyse.PanelText(1) = "Nombre d'enregistrements trouvés :" +
> str(Trim( _
> r.RecordCount))
>
> If r.RecordCount > 0 Then
> If r.AbsolutePosition <> adPosUnknown Then
> ProgressBar.Visible = True
> ProgressBar.Max = r.RecordCount
> End If
>
>
>
> "Quasimodo" <wild_riki.@yahoo.fr> a écrit dans le message de
> news:mn.6c877d4aa36a9947.18602@yahoo.fr...
>> Yves has brought this to us :
>>> Bonjour à tous,
>>>
>>> Voici mon problème
>>>
>>> r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
>>> afficher un ProgressBar
>>>
>>> Ma solution a été de:
>>>
>>> If r.AbsolutePosition <> adPosUnknown Then
>>> ProgressBar.Visible = True
>>> ProgressBar.Max = r.RecordCount
>>> End If
>>>
>>> Mais il existe t-il une autre façon???
>>>
>>> Merci de vos réponse
>>>
>>> J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
>>>
>>> If DB.State = adStateClosed Then
>>>
>>> Select Case strBaseDeDonnéeType
>>> Case "ACCESS"
>>> 'Access
>>> DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source " &
>>> strCheminBase & strNomBase
>>> Case "ODBC"
>>> 'ODBC
>>> DB.Open "Provider=MSDASQL.1;Persist Security
>>> Infoúlse;Data Source=surgest;Initial Catalog=" &
>>> strCheminBase & strNomBase
>>> Case "SQLServeur"
>>> 'DB.Open "Provider=SQLOLEDB;data Source=<name of your
>>> Server>;"
>>> ' DB.Open "Provider=SQLOLEDB;data Source=" &
>>> & strNomBase
>>> End Select
>>>
>>> End If
>>
>> Bonjour,
>> oui, fin peut être. Je pense par exemple à initialiser la propriété max
>> du controle avec le nombre d'enregistrement retourné par le recordset.
>> Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
>> mouvement et d'autres info via un évent, il faut juste traper dans
>> cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
>> déplacement et mettre à jour le controle.
>>
>> @+ Quaz
>>
>> --
>> This is an automatic signature of MesNews.
>> Site : http://mesnews.no-ip.com
re,
oui c'est normale, il faut déclarer votre recordset dans la partie
global de votre module avec l'option withevents.
Voici un chti exemple, qui fonctionne très bien.
Créer deux textbox : txtDB et txtlog
Créer 9 boutons : cmdOpenConnection, cmdClose, CreateRecord,
cmdCloseRecordset, cmdActualPos, cmdMovePrevious, cmdMoveNext,
cmdMoveFirst, cmdMoveLast
Créer un commondialogue : cmdlgMain
Créer une progresbar : ProgressBar
Ajouter les références : Microsoft ActiveX Data Objects 2.8 Library
Ajouter les controls : Microsoft Windows Common Controls 6.0 (SP6) et
Microsoft Common Dialog Control 6.0 (SP6)
Voici le chti code à mettre dans le form principal :
--------------------------------------------------------------------------
Option Explicit
Private m_lngNbreRecords As Long
Private WithEvents m_objRs As ADODB.Recordset
Private WithEvents m_objCon As ADODB.Connection
Private const c_strLaStringSQL as string = "Select * from latable"
Private Sub MakeReasonMove(ByVal adReason As ADODB.EventStatusEnum,
ByVal strMethodeCalled As String)
Select Case adReason
Case adRsnMoveFirst
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveFirst]." & vbCrLf
Case adRsnMoveLast
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveLast]." & vbCrLf
Case adRsnMoveNext
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveNext]." & vbCrLf
Case adRsnMovePrevious
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MovePrevious]." & vbCrLf
Case adRsnMove
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
Move]." & vbCrLf
End Select
End Sub
Private Sub cmdMoveFirst_Click()
m_objRs.MoveFirst
ProgressBar.Value = 0
End Sub
Private Sub cmdMoveLast_Click()
m_objRs.MoveLast
ProgressBar.Value = m_objRs.RecordCount
End Sub
Private Sub cmdMoveNext_Click()
If Not m_objRs.EOF Then
m_objRs.MoveNext
If ProgressBar.Value < ProgressBar.Max Then
ProgressBar.Value = ProgressBar.Value + 1
End If
End If
End Sub
Private Sub cmdMovePrevious_Click()
If Not m_objRs.BOF Then
m_objRs.MovePrevious
If ProgressBar.Value > 0 Then
ProgressBar.Value = ProgressBar.Value - 1
End If
End If
End Sub
Private Sub m_objRs_MoveComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As
ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
MakeReasonMove adReason, "MoveComplete"
End Sub
Private Sub m_objRs_RecordChangeComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal cRecords As Long, ByVal pError As
ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As
ADODB.Recordset)
MakeReasonMove adReason, "RecordChangeComplete"
End Sub
Private Sub cmdActualPos_Click()
Select Case m_objRs.AbsolutePosition
Case adPosBOF
txtlog.Text = txtlog.Text & "Position actuel : BOF." & vbCrLf
Case adPosEOF
txtlog.Text = txtlog.Text & "Position actuel : EOF." & vbCrLf
Case adPosUnknown
txtlog.Text = txtlog.Text & "Position actuel : Unknown." &
vbCrLf
End Select
End Sub
Private Sub cmdCloseRecordset_Click()
m_objRs.Close
Set m_objRs = Nothing
txtlog.Text = txtlog.Text & "Recordset fermé." & vbCrLf
End Sub
Private Sub CreateRecord_Click()
Set m_objRs = New ADODB.Recordset
m_objRs.Open c_strLaStringSQL, m_objCon, adOpenStatic,
adLockOptimistic
m_lngNbreRecords = m_objRs.RecordCount
ProgressBar.Max = m_lngNbreRecords
ProgressBar.Min = 0
txtlog.Text = txtlog.Text & "Nombre d'enregistrements trouvés : " &
Trim(CStr(m_objRs.RecordCount)) & vbCrLf
End Sub
Private Sub MakeStatus(ByVal adStatus As ADODB.EventStatusEnum, ByVal
strMethodeCalled As String)
Select Case adStatus
Case adStatusOK
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status Ok."
& vbCrLf
Case adStatusCancel
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Cancel." & vbCrLf
Case adStatusCantDeny
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
CantDeny." & vbCrLf
Case adStatusErrorsOccurred
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Errors Occurred." & vbCrLf
Case adStatusUnwantedEvent
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Unwanted Event." & vbCrLf
End Select
End Sub
Private Sub cmdClose_Click()
m_objCon.Close
Set m_objCon = Nothing
End Sub
Private Sub cmdOpenConnection_Click()
cmdlgMain.DefaultExt = ".mdb"
cmdlgMain.Filter = "MS Access (*.mdb)|*.mdb"
cmdlgMain.ShowOpen
txtDB.Text = cmdlgMain.FileName
If (Trim(txtDB.Text) = "") Then Exit Sub
If (Dir(txtDB.Text) = "") Then Exit Sub
Set m_objCon = New ADODB.Connection
m_objCon.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
txtDB.Text ';uid=nonDusager;pwd=motDePasse;"
End Sub
Private Sub m_objCon_ConnectComplete(ByVal pError As ADODB.Error,
adStatus As ADODB.EventStatusEnum, ByVal pConnection As
ADODB.Connection)
MakeStatus adStatus, "ConnectComplete"
End Sub
Private Sub m_objCon_Disconnect(adStatus As ADODB.EventStatusEnum,
ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "Disconnect"
End Sub
Private Sub m_objCon_InfoMessage(ByVal pError As ADODB.Error, adStatus
As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "InfoMessage"
End Sub
Private Sub m_objCon_WillConnect(ConnectionString As String, UserID As
String, Password As String, Options As Long, adStatus As
ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
Dim strData As String
Select Case adStatus
Case adStatusOK
strData = "WillConnect : [Status Ok]"
Case adStatusCancel
strData = "WillConnect : [Status Cancel]"
Case adStatusCantDeny
strData = "WillConnect : [Status CantDeny]"
Case adStatusErrorsOccurred
strData = "WillConnect : [Status Errors Occurred]"
Case adStatusUnwantedEvent
strData = "WillConnect : [Status Unwanted Event]"
End Select
strData = strData & "[Connection string : " & ConnectionString &
"]" & _
"[UserID : " & UserID & "]" & _
"[Password : " & Password & "]" & _
"[Options : " & Options & "]"
txtlog.Text = txtlog.Text & strData & vbCrLf
End Sub
--------------------------------------------------------------------------
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Yves formulated on Wednesday :
> je suis en ODBC
> DB.Open "Provider=MSDASQL.1;Persist Security
> Source=surgest;Initial Catalog=" & strCheminBase & strNomBase
>
>
> Je n'ai pas ....
>
> RecordChangeComplete, MoveComplete
>
> r.Open Req, DB, adOpenStatic, adLockOptimistic
> sbrAnalyse.PanelText(1) = "Nombre d'enregistrements trouvés :" +
> str(Trim( _
> r.RecordCount))
>
> If r.RecordCount > 0 Then
> If r.AbsolutePosition <> adPosUnknown Then
> ProgressBar.Visible = True
> ProgressBar.Max = r.RecordCount
> End If
>
>
>
> "Quasimodo" a écrit dans le message de
> news:
>> Yves has brought this to us :
>>> Bonjour à tous,
>>>
>>> Voici mon problème
>>>
>>> r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
>>> afficher un ProgressBar
>>>
>>> Ma solution a été de:
>>>
>>> If r.AbsolutePosition <> adPosUnknown Then
>>> ProgressBar.Visible = True
>>> ProgressBar.Max = r.RecordCount
>>> End If
>>>
>>> Mais il existe t-il une autre façon???
>>>
>>> Merci de vos réponse
>>>
>>> J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
>>>
>>> If DB.State = adStateClosed Then
>>>
>>> Select Case strBaseDeDonnéeType
>>> Case "ACCESS"
>>> 'Access
>>> DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source " &
>>> strCheminBase & strNomBase
>>> Case "ODBC"
>>> 'ODBC
>>> DB.Open "Provider=MSDASQL.1;Persist Security
>>> Infoúlse;Data Source=surgest;Initial Catalog=" &
>>> strCheminBase & strNomBase
>>> Case "SQLServeur"
>>> 'DB.Open "Provider=SQLOLEDB;data Source=<name of your
>>> Server>;"
>>> ' DB.Open "Provider=SQLOLEDB;data Source=" &
>>> & strNomBase
>>> End Select
>>>
>>> End If
>>
>> Bonjour,
>> oui, fin peut être. Je pense par exemple à initialiser la propriété max
>> du controle avec le nombre d'enregistrement retourné par le recordset.
>> Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
>> mouvement et d'autres info via un évent, il faut juste traper dans
>> cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
>> déplacement et mettre à jour le controle.
>>
>> @+ Quaz
>>
>> --
>> This is an automatic signature of MesNews.
>> Site : http://mesnews.no-ip.com
re,
oui c'est normale, il faut déclarer votre recordset dans la partie
global de votre module avec l'option withevents.
Voici un chti exemple, qui fonctionne très bien.
Créer deux textbox : txtDB et txtlog
Créer 9 boutons : cmdOpenConnection, cmdClose, CreateRecord,
cmdCloseRecordset, cmdActualPos, cmdMovePrevious, cmdMoveNext,
cmdMoveFirst, cmdMoveLast
Créer un commondialogue : cmdlgMain
Créer une progresbar : ProgressBar
Ajouter les références : Microsoft ActiveX Data Objects 2.8 Library
Ajouter les controls : Microsoft Windows Common Controls 6.0 (SP6) et
Microsoft Common Dialog Control 6.0 (SP6)
Voici le chti code à mettre dans le form principal :
--------------------------------------------------------------------------
Option Explicit
Private m_lngNbreRecords As Long
Private WithEvents m_objRs As ADODB.Recordset
Private WithEvents m_objCon As ADODB.Connection
Private const c_strLaStringSQL as string = "Select * from latable"
Private Sub MakeReasonMove(ByVal adReason As ADODB.EventStatusEnum,
ByVal strMethodeCalled As String)
Select Case adReason
Case adRsnMoveFirst
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveFirst]." & vbCrLf
Case adRsnMoveLast
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveLast]." & vbCrLf
Case adRsnMoveNext
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveNext]." & vbCrLf
Case adRsnMovePrevious
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MovePrevious]." & vbCrLf
Case adRsnMove
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
Move]." & vbCrLf
End Select
End Sub
Private Sub cmdMoveFirst_Click()
m_objRs.MoveFirst
ProgressBar.Value = 0
End Sub
Private Sub cmdMoveLast_Click()
m_objRs.MoveLast
ProgressBar.Value = m_objRs.RecordCount
End Sub
Private Sub cmdMoveNext_Click()
If Not m_objRs.EOF Then
m_objRs.MoveNext
If ProgressBar.Value < ProgressBar.Max Then
ProgressBar.Value = ProgressBar.Value + 1
End If
End If
End Sub
Private Sub cmdMovePrevious_Click()
If Not m_objRs.BOF Then
m_objRs.MovePrevious
If ProgressBar.Value > 0 Then
ProgressBar.Value = ProgressBar.Value - 1
End If
End If
End Sub
Private Sub m_objRs_MoveComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As
ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
MakeReasonMove adReason, "MoveComplete"
End Sub
Private Sub m_objRs_RecordChangeComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal cRecords As Long, ByVal pError As
ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As
ADODB.Recordset)
MakeReasonMove adReason, "RecordChangeComplete"
End Sub
Private Sub cmdActualPos_Click()
Select Case m_objRs.AbsolutePosition
Case adPosBOF
txtlog.Text = txtlog.Text & "Position actuel : BOF." & vbCrLf
Case adPosEOF
txtlog.Text = txtlog.Text & "Position actuel : EOF." & vbCrLf
Case adPosUnknown
txtlog.Text = txtlog.Text & "Position actuel : Unknown." &
vbCrLf
End Select
End Sub
Private Sub cmdCloseRecordset_Click()
m_objRs.Close
Set m_objRs = Nothing
txtlog.Text = txtlog.Text & "Recordset fermé." & vbCrLf
End Sub
Private Sub CreateRecord_Click()
Set m_objRs = New ADODB.Recordset
m_objRs.Open c_strLaStringSQL, m_objCon, adOpenStatic,
adLockOptimistic
m_lngNbreRecords = m_objRs.RecordCount
ProgressBar.Max = m_lngNbreRecords
ProgressBar.Min = 0
txtlog.Text = txtlog.Text & "Nombre d'enregistrements trouvés : " &
Trim(CStr(m_objRs.RecordCount)) & vbCrLf
End Sub
Private Sub MakeStatus(ByVal adStatus As ADODB.EventStatusEnum, ByVal
strMethodeCalled As String)
Select Case adStatus
Case adStatusOK
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status Ok."
& vbCrLf
Case adStatusCancel
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Cancel." & vbCrLf
Case adStatusCantDeny
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
CantDeny." & vbCrLf
Case adStatusErrorsOccurred
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Errors Occurred." & vbCrLf
Case adStatusUnwantedEvent
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Unwanted Event." & vbCrLf
End Select
End Sub
Private Sub cmdClose_Click()
m_objCon.Close
Set m_objCon = Nothing
End Sub
Private Sub cmdOpenConnection_Click()
cmdlgMain.DefaultExt = ".mdb"
cmdlgMain.Filter = "MS Access (*.mdb)|*.mdb"
cmdlgMain.ShowOpen
txtDB.Text = cmdlgMain.FileName
If (Trim(txtDB.Text) = "") Then Exit Sub
If (Dir(txtDB.Text) = "") Then Exit Sub
Set m_objCon = New ADODB.Connection
m_objCon.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
txtDB.Text ';uid=nonDusager;pwd=motDePasse;"
End Sub
Private Sub m_objCon_ConnectComplete(ByVal pError As ADODB.Error,
adStatus As ADODB.EventStatusEnum, ByVal pConnection As
ADODB.Connection)
MakeStatus adStatus, "ConnectComplete"
End Sub
Private Sub m_objCon_Disconnect(adStatus As ADODB.EventStatusEnum,
ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "Disconnect"
End Sub
Private Sub m_objCon_InfoMessage(ByVal pError As ADODB.Error, adStatus
As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "InfoMessage"
End Sub
Private Sub m_objCon_WillConnect(ConnectionString As String, UserID As
String, Password As String, Options As Long, adStatus As
ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
Dim strData As String
Select Case adStatus
Case adStatusOK
strData = "WillConnect : [Status Ok]"
Case adStatusCancel
strData = "WillConnect : [Status Cancel]"
Case adStatusCantDeny
strData = "WillConnect : [Status CantDeny]"
Case adStatusErrorsOccurred
strData = "WillConnect : [Status Errors Occurred]"
Case adStatusUnwantedEvent
strData = "WillConnect : [Status Unwanted Event]"
End Select
strData = strData & "[Connection string : " & ConnectionString &
"]" & _
"[UserID : " & UserID & "]" & _
"[Password : " & Password & "]" & _
"[Options : " & Options & "]"
txtlog.Text = txtlog.Text & strData & vbCrLf
End Sub
--------------------------------------------------------------------------
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour
Je n'ai pas
Microsoft ActiveX Data Objects 2.8 Library
Visual basic 6 que j'ai
Alors une erreur sur cette ligne : WithEvents
Private WithEvents m_objRs As ADODB.Recordset
"Quasimodo" a écrit dans le message de
news:Yves formulated on Wednesday :je suis en ODBC
DB.Open "Provider=MSDASQL.1;Persist Security
Infoúlse;Data Source=surgest;Initial Catalog=" & strCheminBase &
strNomBase
Je n'ai pas ....
RecordChangeComplete, MoveComplete
r.Open Req, DB, adOpenStatic, adLockOptimistic
sbrAnalyse.PanelText(1) = "Nombre d'enregistrements trouvés :" +
str(Trim( _
r.RecordCount))
If r.RecordCount > 0 Then
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
"Quasimodo" a écrit dans le message de
news:Yves has brought this to us :Bonjour à tous,
Voici mon problème
r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
afficher un ProgressBar
Ma solution a été de:
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
Mais il existe t-il une autre façon???
Merci de vos réponse
J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
If DB.State = adStateClosed Then
Select Case strBaseDeDonnéeType
Case "ACCESS"
'Access
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
& strCheminBase & strNomBase
Case "ODBC"
'ODBC
DB.Open "Provider=MSDASQL.1;Persist Security
Infoúlse;Data Source=surgest;Initial Catalog=" &
strCheminBase & strNomBase
Case "SQLServeur"
'DB.Open "Provider=SQLOLEDB;data Source=<name of your SQL
Server>;"
' DB.Open "Provider=SQLOLEDB;data Source=" &
strCheminBase & strNomBase
End Select
End If
Bonjour,
oui, fin peut être. Je pense par exemple à initialiser la propriété max
du controle avec le nombre d'enregistrement retourné par le recordset.
Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
mouvement et d'autres info via un évent, il faut juste traper dans
cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
déplacement et mettre à jour le controle.
@+ Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
re,
oui c'est normale, il faut déclarer votre recordset dans la partie
global de votre module avec l'option withevents.
Voici un chti exemple, qui fonctionne très bien.
Créer deux textbox : txtDB et txtlog
Créer 9 boutons : cmdOpenConnection, cmdClose, CreateRecord,
cmdCloseRecordset, cmdActualPos, cmdMovePrevious, cmdMoveNext,
cmdMoveFirst, cmdMoveLast
Créer un commondialogue : cmdlgMain
Créer une progresbar : ProgressBar
Ajouter les références : Microsoft ActiveX Data Objects 2.8 Library
Ajouter les controls : Microsoft Windows Common Controls 6.0 (SP6) et
Microsoft Common Dialog Control 6.0 (SP6)
Voici le chti code à mettre dans le form principal :
--------------------------------------------------------------------------
--------------------------------------------------------- Option Explicit
Private m_lngNbreRecords As Long
Private WithEvents m_objRs As ADODB.Recordset
Private WithEvents m_objCon As ADODB.Connection
Private const c_strLaStringSQL as string = "Select * from latable"
Private Sub MakeReasonMove(ByVal adReason As ADODB.EventStatusEnum,
ByVal strMethodeCalled As String)
Select Case adReason
Case adRsnMoveFirst
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveFirst]." & vbCrLf
Case adRsnMoveLast
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveLast]." & vbCrLf
Case adRsnMoveNext
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveNext]." & vbCrLf
Case adRsnMovePrevious
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MovePrevious]." & vbCrLf
Case adRsnMove
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
Move]." & vbCrLf
End Select
End Sub
Private Sub cmdMoveFirst_Click()
m_objRs.MoveFirst
ProgressBar.Value = 0
End Sub
Private Sub cmdMoveLast_Click()
m_objRs.MoveLast
ProgressBar.Value = m_objRs.RecordCount
End Sub
Private Sub cmdMoveNext_Click()
If Not m_objRs.EOF Then
m_objRs.MoveNext
If ProgressBar.Value < ProgressBar.Max Then
ProgressBar.Value = ProgressBar.Value + 1
End If
End If
End Sub
Private Sub cmdMovePrevious_Click()
If Not m_objRs.BOF Then
m_objRs.MovePrevious
If ProgressBar.Value > 0 Then
ProgressBar.Value = ProgressBar.Value - 1
End If
End If
End Sub
Private Sub m_objRs_MoveComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As
ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
MakeReasonMove adReason, "MoveComplete"
End Sub
Private Sub m_objRs_RecordChangeComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal cRecords As Long, ByVal pError As
ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As
ADODB.Recordset)
MakeReasonMove adReason, "RecordChangeComplete"
End Sub
Private Sub cmdActualPos_Click()
Select Case m_objRs.AbsolutePosition
Case adPosBOF
txtlog.Text = txtlog.Text & "Position actuel : BOF." & vbCrLf
Case adPosEOF
txtlog.Text = txtlog.Text & "Position actuel : EOF." & vbCrLf
Case adPosUnknown
txtlog.Text = txtlog.Text & "Position actuel : Unknown." &
vbCrLf
End Select
End Sub
Private Sub cmdCloseRecordset_Click()
m_objRs.Close
Set m_objRs = Nothing
txtlog.Text = txtlog.Text & "Recordset fermé." & vbCrLf
End Sub
Private Sub CreateRecord_Click()
Set m_objRs = New ADODB.Recordset
m_objRs.Open c_strLaStringSQL, m_objCon, adOpenStatic,
adLockOptimistic
m_lngNbreRecords = m_objRs.RecordCount
ProgressBar.Max = m_lngNbreRecords
ProgressBar.Min = 0
txtlog.Text = txtlog.Text & "Nombre d'enregistrements trouvés : " &
Trim(CStr(m_objRs.RecordCount)) & vbCrLf
End Sub
Private Sub MakeStatus(ByVal adStatus As ADODB.EventStatusEnum, ByVal
strMethodeCalled As String)
Select Case adStatus
Case adStatusOK
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status Ok."
& vbCrLf
Case adStatusCancel
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Cancel." & vbCrLf
Case adStatusCantDeny
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
CantDeny." & vbCrLf
Case adStatusErrorsOccurred
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Errors Occurred." & vbCrLf
Case adStatusUnwantedEvent
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Unwanted Event." & vbCrLf
End Select
End Sub
Private Sub cmdClose_Click()
m_objCon.Close
Set m_objCon = Nothing
End Sub
Private Sub cmdOpenConnection_Click()
cmdlgMain.DefaultExt = ".mdb"
cmdlgMain.Filter = "MS Access (*.mdb)|*.mdb"
cmdlgMain.ShowOpen
txtDB.Text = cmdlgMain.FileName
If (Trim(txtDB.Text) = "") Then Exit Sub
If (Dir(txtDB.Text) = "") Then Exit Sub
Set m_objCon = New ADODB.Connection
m_objCon.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
txtDB.Text ';uid=nonDusager;pwd=motDePasse;"
End Sub
Private Sub m_objCon_ConnectComplete(ByVal pError As ADODB.Error,
adStatus As ADODB.EventStatusEnum, ByVal pConnection As
ADODB.Connection)
MakeStatus adStatus, "ConnectComplete"
End Sub
Private Sub m_objCon_Disconnect(adStatus As ADODB.EventStatusEnum,
ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "Disconnect"
End Sub
Private Sub m_objCon_InfoMessage(ByVal pError As ADODB.Error, adStatus
As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "InfoMessage"
End Sub
Private Sub m_objCon_WillConnect(ConnectionString As String, UserID As
String, Password As String, Options As Long, adStatus As
ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
Dim strData As String
Select Case adStatus
Case adStatusOK
strData = "WillConnect : [Status Ok]"
Case adStatusCancel
strData = "WillConnect : [Status Cancel]"
Case adStatusCantDeny
strData = "WillConnect : [Status CantDeny]"
Case adStatusErrorsOccurred
strData = "WillConnect : [Status Errors Occurred]"
Case adStatusUnwantedEvent
strData = "WillConnect : [Status Unwanted Event]"
End Select
strData = strData & "[Connection string : " & ConnectionString &
"]" & _
"[UserID : " & UserID & "]" & _
"[Password : " & Password & "]" & _
"[Options : " & Options & "]"
txtlog.Text = txtlog.Text & strData & vbCrLf
End Sub
--------------------------------------------------------------------------
---------------------------------------------------------
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour
Je n'ai pas
Microsoft ActiveX Data Objects 2.8 Library
Visual basic 6 que j'ai
Alors une erreur sur cette ligne : WithEvents
Private WithEvents m_objRs As ADODB.Recordset
"Quasimodo" <wild_riki.@yahoo.fr> a écrit dans le message de
news:mn.6d997d4abab25752.18602@yahoo.fr...
Yves formulated on Wednesday :
je suis en ODBC
DB.Open "Provider=MSDASQL.1;Persist Security
Infoúlse;Data Source=surgest;Initial Catalog=" & strCheminBase &
strNomBase
Je n'ai pas ....
RecordChangeComplete, MoveComplete
r.Open Req, DB, adOpenStatic, adLockOptimistic
sbrAnalyse.PanelText(1) = "Nombre d'enregistrements trouvés :" +
str(Trim( _
r.RecordCount))
If r.RecordCount > 0 Then
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
"Quasimodo" <wild_riki.@yahoo.fr> a écrit dans le message de
news:mn.6c877d4aa36a9947.18602@yahoo.fr...
Yves has brought this to us :
Bonjour à tous,
Voici mon problème
r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
afficher un ProgressBar
Ma solution a été de:
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
Mais il existe t-il une autre façon???
Merci de vos réponse
J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
If DB.State = adStateClosed Then
Select Case strBaseDeDonnéeType
Case "ACCESS"
'Access
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
& strCheminBase & strNomBase
Case "ODBC"
'ODBC
DB.Open "Provider=MSDASQL.1;Persist Security
Infoúlse;Data Source=surgest;Initial Catalog=" &
strCheminBase & strNomBase
Case "SQLServeur"
'DB.Open "Provider=SQLOLEDB;data Source=<name of your SQL
Server>;"
' DB.Open "Provider=SQLOLEDB;data Source=" &
strCheminBase & strNomBase
End Select
End If
Bonjour,
oui, fin peut être. Je pense par exemple à initialiser la propriété max
du controle avec le nombre d'enregistrement retourné par le recordset.
Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
mouvement et d'autres info via un évent, il faut juste traper dans
cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
déplacement et mettre à jour le controle.
@+ Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
re,
oui c'est normale, il faut déclarer votre recordset dans la partie
global de votre module avec l'option withevents.
Voici un chti exemple, qui fonctionne très bien.
Créer deux textbox : txtDB et txtlog
Créer 9 boutons : cmdOpenConnection, cmdClose, CreateRecord,
cmdCloseRecordset, cmdActualPos, cmdMovePrevious, cmdMoveNext,
cmdMoveFirst, cmdMoveLast
Créer un commondialogue : cmdlgMain
Créer une progresbar : ProgressBar
Ajouter les références : Microsoft ActiveX Data Objects 2.8 Library
Ajouter les controls : Microsoft Windows Common Controls 6.0 (SP6) et
Microsoft Common Dialog Control 6.0 (SP6)
Voici le chti code à mettre dans le form principal :
--------------------------------------------------------------------------
--------------------------------------------------------- Option Explicit
Private m_lngNbreRecords As Long
Private WithEvents m_objRs As ADODB.Recordset
Private WithEvents m_objCon As ADODB.Connection
Private const c_strLaStringSQL as string = "Select * from latable"
Private Sub MakeReasonMove(ByVal adReason As ADODB.EventStatusEnum,
ByVal strMethodeCalled As String)
Select Case adReason
Case adRsnMoveFirst
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveFirst]." & vbCrLf
Case adRsnMoveLast
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveLast]." & vbCrLf
Case adRsnMoveNext
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveNext]." & vbCrLf
Case adRsnMovePrevious
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MovePrevious]." & vbCrLf
Case adRsnMove
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
Move]." & vbCrLf
End Select
End Sub
Private Sub cmdMoveFirst_Click()
m_objRs.MoveFirst
ProgressBar.Value = 0
End Sub
Private Sub cmdMoveLast_Click()
m_objRs.MoveLast
ProgressBar.Value = m_objRs.RecordCount
End Sub
Private Sub cmdMoveNext_Click()
If Not m_objRs.EOF Then
m_objRs.MoveNext
If ProgressBar.Value < ProgressBar.Max Then
ProgressBar.Value = ProgressBar.Value + 1
End If
End If
End Sub
Private Sub cmdMovePrevious_Click()
If Not m_objRs.BOF Then
m_objRs.MovePrevious
If ProgressBar.Value > 0 Then
ProgressBar.Value = ProgressBar.Value - 1
End If
End If
End Sub
Private Sub m_objRs_MoveComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As
ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
MakeReasonMove adReason, "MoveComplete"
End Sub
Private Sub m_objRs_RecordChangeComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal cRecords As Long, ByVal pError As
ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As
ADODB.Recordset)
MakeReasonMove adReason, "RecordChangeComplete"
End Sub
Private Sub cmdActualPos_Click()
Select Case m_objRs.AbsolutePosition
Case adPosBOF
txtlog.Text = txtlog.Text & "Position actuel : BOF." & vbCrLf
Case adPosEOF
txtlog.Text = txtlog.Text & "Position actuel : EOF." & vbCrLf
Case adPosUnknown
txtlog.Text = txtlog.Text & "Position actuel : Unknown." &
vbCrLf
End Select
End Sub
Private Sub cmdCloseRecordset_Click()
m_objRs.Close
Set m_objRs = Nothing
txtlog.Text = txtlog.Text & "Recordset fermé." & vbCrLf
End Sub
Private Sub CreateRecord_Click()
Set m_objRs = New ADODB.Recordset
m_objRs.Open c_strLaStringSQL, m_objCon, adOpenStatic,
adLockOptimistic
m_lngNbreRecords = m_objRs.RecordCount
ProgressBar.Max = m_lngNbreRecords
ProgressBar.Min = 0
txtlog.Text = txtlog.Text & "Nombre d'enregistrements trouvés : " &
Trim(CStr(m_objRs.RecordCount)) & vbCrLf
End Sub
Private Sub MakeStatus(ByVal adStatus As ADODB.EventStatusEnum, ByVal
strMethodeCalled As String)
Select Case adStatus
Case adStatusOK
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status Ok."
& vbCrLf
Case adStatusCancel
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Cancel." & vbCrLf
Case adStatusCantDeny
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
CantDeny." & vbCrLf
Case adStatusErrorsOccurred
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Errors Occurred." & vbCrLf
Case adStatusUnwantedEvent
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Unwanted Event." & vbCrLf
End Select
End Sub
Private Sub cmdClose_Click()
m_objCon.Close
Set m_objCon = Nothing
End Sub
Private Sub cmdOpenConnection_Click()
cmdlgMain.DefaultExt = ".mdb"
cmdlgMain.Filter = "MS Access (*.mdb)|*.mdb"
cmdlgMain.ShowOpen
txtDB.Text = cmdlgMain.FileName
If (Trim(txtDB.Text) = "") Then Exit Sub
If (Dir(txtDB.Text) = "") Then Exit Sub
Set m_objCon = New ADODB.Connection
m_objCon.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
txtDB.Text ';uid=nonDusager;pwd=motDePasse;"
End Sub
Private Sub m_objCon_ConnectComplete(ByVal pError As ADODB.Error,
adStatus As ADODB.EventStatusEnum, ByVal pConnection As
ADODB.Connection)
MakeStatus adStatus, "ConnectComplete"
End Sub
Private Sub m_objCon_Disconnect(adStatus As ADODB.EventStatusEnum,
ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "Disconnect"
End Sub
Private Sub m_objCon_InfoMessage(ByVal pError As ADODB.Error, adStatus
As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "InfoMessage"
End Sub
Private Sub m_objCon_WillConnect(ConnectionString As String, UserID As
String, Password As String, Options As Long, adStatus As
ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
Dim strData As String
Select Case adStatus
Case adStatusOK
strData = "WillConnect : [Status Ok]"
Case adStatusCancel
strData = "WillConnect : [Status Cancel]"
Case adStatusCantDeny
strData = "WillConnect : [Status CantDeny]"
Case adStatusErrorsOccurred
strData = "WillConnect : [Status Errors Occurred]"
Case adStatusUnwantedEvent
strData = "WillConnect : [Status Unwanted Event]"
End Select
strData = strData & "[Connection string : " & ConnectionString &
"]" & _
"[UserID : " & UserID & "]" & _
"[Password : " & Password & "]" & _
"[Options : " & Options & "]"
txtlog.Text = txtlog.Text & strData & vbCrLf
End Sub
--------------------------------------------------------------------------
---------------------------------------------------------
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour
Je n'ai pas
Microsoft ActiveX Data Objects 2.8 Library
Visual basic 6 que j'ai
Alors une erreur sur cette ligne : WithEvents
Private WithEvents m_objRs As ADODB.Recordset
"Quasimodo" a écrit dans le message de
news:Yves formulated on Wednesday :je suis en ODBC
DB.Open "Provider=MSDASQL.1;Persist Security
Infoúlse;Data Source=surgest;Initial Catalog=" & strCheminBase &
strNomBase
Je n'ai pas ....
RecordChangeComplete, MoveComplete
r.Open Req, DB, adOpenStatic, adLockOptimistic
sbrAnalyse.PanelText(1) = "Nombre d'enregistrements trouvés :" +
str(Trim( _
r.RecordCount))
If r.RecordCount > 0 Then
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
"Quasimodo" a écrit dans le message de
news:Yves has brought this to us :Bonjour à tous,
Voici mon problème
r.AbsolutePosition en ODBC ne fonctionne pas et je voudrais pouvoir
afficher un ProgressBar
Ma solution a été de:
If r.AbsolutePosition <> adPosUnknown Then
ProgressBar.Visible = True
ProgressBar.Max = r.RecordCount
End If
Mais il existe t-il une autre façon???
Merci de vos réponse
J'ouvre ma base en Access ou ODBC et plus tard en SQLServeur
If DB.State = adStateClosed Then
Select Case strBaseDeDonnéeType
Case "ACCESS"
'Access
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
& strCheminBase & strNomBase
Case "ODBC"
'ODBC
DB.Open "Provider=MSDASQL.1;Persist Security
Infoúlse;Data Source=surgest;Initial Catalog=" &
strCheminBase & strNomBase
Case "SQLServeur"
'DB.Open "Provider=SQLOLEDB;data Source=<name of your SQL
Server>;"
' DB.Open "Provider=SQLOLEDB;data Source=" &
strCheminBase & strNomBase
End Select
End If
Bonjour,
oui, fin peut être. Je pense par exemple à initialiser la propriété max
du controle avec le nombre d'enregistrement retourné par le recordset.
Ensuite, sur chaque mouvement du recordset, celui renvoie le type de
mouvement et d'autres info via un évent, il faut juste traper dans
cette évent le type (voir : RecordChangeComplete, MoveComplete, ...) de
déplacement et mettre à jour le controle.
@+ Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
re,
oui c'est normale, il faut déclarer votre recordset dans la partie
global de votre module avec l'option withevents.
Voici un chti exemple, qui fonctionne très bien.
Créer deux textbox : txtDB et txtlog
Créer 9 boutons : cmdOpenConnection, cmdClose, CreateRecord,
cmdCloseRecordset, cmdActualPos, cmdMovePrevious, cmdMoveNext,
cmdMoveFirst, cmdMoveLast
Créer un commondialogue : cmdlgMain
Créer une progresbar : ProgressBar
Ajouter les références : Microsoft ActiveX Data Objects 2.8 Library
Ajouter les controls : Microsoft Windows Common Controls 6.0 (SP6) et
Microsoft Common Dialog Control 6.0 (SP6)
Voici le chti code à mettre dans le form principal :
--------------------------------------------------------------------------
--------------------------------------------------------- Option Explicit
Private m_lngNbreRecords As Long
Private WithEvents m_objRs As ADODB.Recordset
Private WithEvents m_objCon As ADODB.Connection
Private const c_strLaStringSQL as string = "Select * from latable"
Private Sub MakeReasonMove(ByVal adReason As ADODB.EventStatusEnum,
ByVal strMethodeCalled As String)
Select Case adReason
Case adRsnMoveFirst
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveFirst]." & vbCrLf
Case adRsnMoveLast
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveLast]." & vbCrLf
Case adRsnMoveNext
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MoveNext]." & vbCrLf
Case adRsnMovePrevious
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
MovePrevious]." & vbCrLf
Case adRsnMove
txtlog.Text = txtlog.Text & strMethodeCalled & " [Move reason :
Move]." & vbCrLf
End Select
End Sub
Private Sub cmdMoveFirst_Click()
m_objRs.MoveFirst
ProgressBar.Value = 0
End Sub
Private Sub cmdMoveLast_Click()
m_objRs.MoveLast
ProgressBar.Value = m_objRs.RecordCount
End Sub
Private Sub cmdMoveNext_Click()
If Not m_objRs.EOF Then
m_objRs.MoveNext
If ProgressBar.Value < ProgressBar.Max Then
ProgressBar.Value = ProgressBar.Value + 1
End If
End If
End Sub
Private Sub cmdMovePrevious_Click()
If Not m_objRs.BOF Then
m_objRs.MovePrevious
If ProgressBar.Value > 0 Then
ProgressBar.Value = ProgressBar.Value - 1
End If
End If
End Sub
Private Sub m_objRs_MoveComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As
ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
MakeReasonMove adReason, "MoveComplete"
End Sub
Private Sub m_objRs_RecordChangeComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal cRecords As Long, ByVal pError As
ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As
ADODB.Recordset)
MakeReasonMove adReason, "RecordChangeComplete"
End Sub
Private Sub cmdActualPos_Click()
Select Case m_objRs.AbsolutePosition
Case adPosBOF
txtlog.Text = txtlog.Text & "Position actuel : BOF." & vbCrLf
Case adPosEOF
txtlog.Text = txtlog.Text & "Position actuel : EOF." & vbCrLf
Case adPosUnknown
txtlog.Text = txtlog.Text & "Position actuel : Unknown." &
vbCrLf
End Select
End Sub
Private Sub cmdCloseRecordset_Click()
m_objRs.Close
Set m_objRs = Nothing
txtlog.Text = txtlog.Text & "Recordset fermé." & vbCrLf
End Sub
Private Sub CreateRecord_Click()
Set m_objRs = New ADODB.Recordset
m_objRs.Open c_strLaStringSQL, m_objCon, adOpenStatic,
adLockOptimistic
m_lngNbreRecords = m_objRs.RecordCount
ProgressBar.Max = m_lngNbreRecords
ProgressBar.Min = 0
txtlog.Text = txtlog.Text & "Nombre d'enregistrements trouvés : " &
Trim(CStr(m_objRs.RecordCount)) & vbCrLf
End Sub
Private Sub MakeStatus(ByVal adStatus As ADODB.EventStatusEnum, ByVal
strMethodeCalled As String)
Select Case adStatus
Case adStatusOK
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status Ok."
& vbCrLf
Case adStatusCancel
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Cancel." & vbCrLf
Case adStatusCantDeny
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
CantDeny." & vbCrLf
Case adStatusErrorsOccurred
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Errors Occurred." & vbCrLf
Case adStatusUnwantedEvent
txtlog.Text = txtlog.Text & strMethodeCalled & " : Status
Unwanted Event." & vbCrLf
End Select
End Sub
Private Sub cmdClose_Click()
m_objCon.Close
Set m_objCon = Nothing
End Sub
Private Sub cmdOpenConnection_Click()
cmdlgMain.DefaultExt = ".mdb"
cmdlgMain.Filter = "MS Access (*.mdb)|*.mdb"
cmdlgMain.ShowOpen
txtDB.Text = cmdlgMain.FileName
If (Trim(txtDB.Text) = "") Then Exit Sub
If (Dir(txtDB.Text) = "") Then Exit Sub
Set m_objCon = New ADODB.Connection
m_objCon.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
txtDB.Text ';uid=nonDusager;pwd=motDePasse;"
End Sub
Private Sub m_objCon_ConnectComplete(ByVal pError As ADODB.Error,
adStatus As ADODB.EventStatusEnum, ByVal pConnection As
ADODB.Connection)
MakeStatus adStatus, "ConnectComplete"
End Sub
Private Sub m_objCon_Disconnect(adStatus As ADODB.EventStatusEnum,
ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "Disconnect"
End Sub
Private Sub m_objCon_InfoMessage(ByVal pError As ADODB.Error, adStatus
As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
MakeStatus adStatus, "InfoMessage"
End Sub
Private Sub m_objCon_WillConnect(ConnectionString As String, UserID As
String, Password As String, Options As Long, adStatus As
ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
Dim strData As String
Select Case adStatus
Case adStatusOK
strData = "WillConnect : [Status Ok]"
Case adStatusCancel
strData = "WillConnect : [Status Cancel]"
Case adStatusCantDeny
strData = "WillConnect : [Status CantDeny]"
Case adStatusErrorsOccurred
strData = "WillConnect : [Status Errors Occurred]"
Case adStatusUnwantedEvent
strData = "WillConnect : [Status Unwanted Event]"
End Select
strData = strData & "[Connection string : " & ConnectionString &
"]" & _
"[UserID : " & UserID & "]" & _
"[Password : " & Password & "]" & _
"[Options : " & Options & "]"
txtlog.Text = txtlog.Text & strData & vbCrLf
End Sub
--------------------------------------------------------------------------
---------------------------------------------------------
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com