Bonjour à tous,
Je viens de finir avec ma petite application avec vb6. Comme dernière étape je voudrai distribuer mon application pour une période limitéé et puis le programme va s'arréter en demandant à l'utilisateur d'entrer une clé pour activer le programme. J'ai trouvé ce code dans un forum que j'ai adapté et introduit dans mon application mais le code est associé avec DAO alors que moi je travaille avec ADO.J'aimerais bien que quelq'un m'aides pour qu'il soit compatible avec ADO.
Voici le code DAO:
Dim DB As Database
Dim RS As RecordsetPrivate Sub Form_Load()
Dim COD As String
Dim Now As Date
Dim s As String
Dim SS As Date
Now = Date
Dim ts As String
'''''''''''''''''''
''''''''''''''''''
SS = Format$(DateDiff("d", -30, Now))
'Text3.Text = ts
s = GetSetting("ooo", "oo", "oo", Text1.Text)
Text1.Text = s
'If Not ts = "" Then
'If ts < Now Then
'MsgBox ts
'Unload Me
'End If
'End If
'''''''''''''''''''''''''''''''
If Trim$(Text1.Text) = "" Then
Text1.Text = SS
SaveSetting "ooo", "oo", "oo", SS
SaveSetting "ooo", "oo", "osama", Now
End If
'
'''''''''''''''''''''''''''
COD = GetSetting("OSAMA", "OSAMA", " CODE", Text2.Text)
Text2.Text = CODE
Set DB = OpenDatabase("REGSTED.mdb", False, False, ";pwd=" & "123")
Set RS = DB.OpenRecordset("REG_DATA", 2)
RS.FindFirst "CODE='" + Text2.Text + "'"
If RS.NoMatch Then
s = GetSetting("ooo", "oo", "oo", SS)
Text1.Text = s
Else
MsgBox "le programme est enregistré avec succés"
Unload Me
Exit Sub
End If
s = GetSetting("ooo", "oo", "oo", SS)
ts = GetSetting("ooo", "oo", "osama", Text3.Text)
Text3.Text = ts
If ts > Now Then
MsgBox "la période d'éssai est terminée"
Unload Me
Exit Sub
End If
Dim regm As String
regm = MsgBox("la période d'éssai est terminée, voulez vous enregitrer? vbYesNo)
If regm = vbNo Then
Unload Me
Else
FORM2.Show
Unload Me
End If
Exit Sub
End IfET sur l'autre forme ou l'utilisateur doit entrer le code, il y'a ce code:
Private Sub Command1_Click() RS.FindFirst "CODE='" + Text1.Text + "'" If RS.NoMatch Then MsgBox "LE code est faux" Exit Sub Else SaveSetting "OSAMA", "OSAMA", " CODE", Text1.Text MsgBox " ÊLe programme est enregistré " Unload Me FORM1.Show End If End Sub
J'ai fais plusieurs tentatives de conversion mais sans vain, voici un éxemple:
Dim DB As ADODB.Connection
Dim RS As ADODB.Recordset
Private Sub Form_Load()
Dim COD As String
Dim Now As Date
Dim s As String
Dim SS As Date
Now = Date
Dim ts As String
SS = Format$(DateDiff("d", -30, Now))
'Text3.Text = ts
s = GetSetting("ooo", "oo", "oo", Text1.Text)
Text1.Text = s
'If Not ts = "" Then
'If ts < Now Then
'MsgBox ts
'Unload Me
'End If
'End If
If Trim$(Text1.Text) = "" Then
Text1.Text = SS
SaveSetting "ooo", "oo", "oo", SS
SaveSetting "ooo", "oo", "osama", Now
End If
COD = GetSetting("OSAMA", "OSAMA", " CODE", Text2.Text)
Text2.Text = COD
Set DB = New ADODB.Connection
Set RS = New ADODB.Recordset
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database password=123; Data Source=" & App.Path & "\database.mdb"
RS.Open "select * from table3", DB, adOpenDynamic, adLockOptimistic
RS.Find "CODE like '" & Text2.Text & "'"
If Not RS.BOF Then
RS!CODE = Text2.Text
s = GetSetting("ooo", "oo", "oo", SS)
Text1.Text = s
Else
MsgBox "Le programme est enregistré, merci!"
Exit Sub
End If
s = GetSetting("ooo", "oo", "oo", SS)
ts = GetSetting("ooo", "oo", "osama", Text3.Text)
Text3.Text = ts
If ts > Now Then
MsgBox "Date introuvable "
Form8.Show
Unload Me
Exit Sub
End If
If s <= Now Then
Dim regm As String
regm = MsgBox("La période d'éssai a expiré, voulez vous enregitrer votre programme?", vbYesNo)
If regm = vbNo Then
Unload Me
Else
Form8.Show
Unload Me
End If
Exit Sub
End If
End SubPrivate Sub Command1_Click() RS.Find "CODE like '" & Text1.Text & "'" If RS!CODE <> Text1.Text Then MsgBox "Le code que vous avez entré est faux" Else SaveSetting "OSAMA", "OSAMA", " CODE", Text1.Text MsgBox " Le programme est enregistré, merci " Unload Me Form1.Show End If
merci


Salut,
La méthode find du ADO.Recordset est beaucoup plus pauvre que celle de DAO, je te conseille de faire le travail dans ta requête:
RS.Open "select * from table3 where CODE = '" & Text2.Text & "'", DB, adOpenDynamic, adLockOptimistic
if RS.EOF then pas trouvé