IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

code qui marche pas!


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Par défaut code qui marche pas!
    Bonjour à tous
    Enfin avec votre aide précieux, Je viens de finir avec ma petite application. 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 il parrait qu'il y'a un probléme car je recois des messages d'erreurs liées à RS.FindFirst et RS.NoMatch (data not found) (type mismatch...)
    le code originale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Dim DB As Database
    Dim RS As 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 = 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 If
    le code adapté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Dim DB As ADODB.Connection
    Dim RS As ADODB.Recordset
    Private Sub Form_Load()
    With Me.Adodc1
     .ConnectionString = "F:\logicièl\database.mdb"
     
    End With
     
    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("database.mdb", False, False, ";pwd=" & "abc")
    Set RS = DB.OpenRecordset("table3", 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"
    FORM8.Show
    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
    FORM8.Show
    Unload Me
    End If
    Exit Sub
     
     
    End If
    Je dois noter que j'ai crée une table avec les méme champs que le modèle que j'ai piqué du forum.
    Merci à tous

  2. #2
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut
    Salut Zidane

    c'est Normale la connexion dans le code originale est en :
    et la conexion dans ton code est en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Me.Adodc1
     .ConnectionString = "F:\logicièl\database.mdb"
    End With
    Donc il y a une confusion, il faut revoir l'adaptation et ton code il ne reconnais même pas le Recordset(Rs) il faut choisir ou l'un ou l'autre.

    au revoir

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Par défaut
    Merci M.BERRACHED de ta réponse.
    il faut revoir l'adaptation et ton code
    pouvez vous m'aider à adapter ce code et je vous serais trés reconnaissant?

  4. #4
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut
    Salut zidane

    si tu es en ADODB je peux t'aidé mais si tu es Adodc dessolé je n'ai jamais travaille avec.
    je laisse le soins aux plus chevronnés en la matière qui peuvent t'apporter Plus.

    Cordialement

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Par défaut
    Dans mes requetes je me sert de ce code pour ouvrir ma base de donnée.
    Set DB = New ADODB.Connection
    Set RS = New ADODB.Recordset
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database password=abc; Data Source=" & App.Path & "\database.mdb"
     
           RS.Open "select * from table1 ", DB, adOpenDynamic, adLockOptimistic
    J'ai éssayé de l'utilisés au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set DB = OpenDatabase("REGSTED.mdb", False, False, ";pwd=" & "abc")
    Set RS = DB.OpenRecordset("REG_DATA", 2)
    Mais ça pas marché.
    Ainsi et ne sont pas reconnu du tout avec ma requette.

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Par défaut
    Désolé j'ai pas vu votre message!
    Quelle est la difference entre adodc et adodb?
    Mais je crois que je suis avec Adodb.

  7. #7
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut
    Salut

    c'est un peu compliqué mais je vois la chose de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RS.Open "select * from [table3]", cn, adOpenDynamic, adLockOptimistic
    RS.Find "[Ton Champ] like '" & Text2.Text & "'"
    If RS.EOF Then
    'la suite...
    Cordialement

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Par défaut
    Merci M.said mais malheureusement le code a encore besoin d'ajustement pour qu'il soit compatible.
    J'attends les éxperts en matière pour m'aider!
    merci

  9. #9
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben déjà pourquoi passer de DAO a ADO ?

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Par défaut
    ben déjà pourquoi passer de DAO a ADO ?
    Non je voudrai rester avec ADO mais le code dont j'ai besoin est associé avec DAO.
    J'aimerais bien l'adapter pour qu'il soit compatible avec ADO car j'ai vraiment besoin d'un code de ce genre.
    Voulez vous m'aider M.bbil et je vous serai reconnaissant toute ma vie.
    merci

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Par défaut
    Ainsi sur l'autre form ou l'utilisateur doit entrer le code, j'ai utilisé ce code mais il parrait qu'il doit étre réglé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Command1_Click()
    RS.Find "CODE like '" & Text1.Text & "'"
    If Not RS.EOF Then
     
     
    MsgBox "Le code que vous avez entré est faux"
    Exit Sub
    Else
    SaveSetting "OSAMA", "OSAMA", " CODE", Text1.Text
    MsgBox " Le programme est enregistré, merci "
    Unload Me
    Form1.Show
     
    End If
    End Sub

  12. #12
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    et tu en est ou avec ce dernier code ..? plus d'erreur ?

  13. #13
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Par défaut
    et tu en est ou avec ce dernier code ..? plus d'erreur ?
    Avec ce dernier code; si par exemple j'enregistre avec un faux numéro, il l'accepte.
    Si je fais des modification au niveau de BOF OU EOF, il n'accepte pas le code même s'il est correct.

    En fait méme ce code a encore besoin d'ajustement car même si je change la date du pc au delà de 30 jours, il ne demande pas l'enregistrement si je fais
    RS.BOF à true, et si je l'a mis false, il me demande l'enregistrement mais je me trouve encore en face avec le problème de l'autre forme que je viens de décrire.
    Avec ce dernier code; si par exemple j'enregistre avec un faux numéro, il l'accepte.
    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    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 REG_DATA ", DB, adOpenDynamic, adLockOptimistic
     
    RS.Find "CODE like '" & Text2.Text & "'"
    If 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 " & "+" & 966541551349#
    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
    Else
     
    Form1.Label1.Caption = "Programme non enregitré " & Format$(DateDiff("d", Now, s)) & " Jours à enregistrer"
    Form8.Show
    Unload Me
     
    End If
     
     
    End Sub

  14. #14
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Par défaut
    Bonjour
    Je crois que j'ai fais un pas en avant:
    Voici mes codes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    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 If
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Command1_Click()
    If RS!CODE <> Text1.Text Then
    MsgBox " faux code"
    Else
     
     
    MsgBox " Le programme est enregistré, merci "
    SaveSetting "ooo", "oo", "oo", ""
    Unload Me
    Form1.Show
     
    End If
    Le code fonctionne bien sauf qu'aprés chaque mois il demande d'entrer le code.
    Je ne sais quoi ajouter pour que le programme ne demande plus la clé aprés avoir été activé.
    merci

  15. #15
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2006
    Messages : 70
    Par défaut Code qui marche pas!
    Bonjour,

    N'aurais-tu pas un problème de format de données entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SS = Format$(DateDiff("d", -30, Now))
    puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s = GetSetting("ooo", "oo", "oo", Text1.Text)
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Trim$(Text1.Text) = "" Then
    Text1.Text = SS
    Pourquoi enregistres-tu un valeur nulle si tu veux comparer avec une date ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MsgBox " Le programme est enregistré, merci "
    SaveSetting "ooo", "oo", "oo", ""

    Bon courage

  16. #16
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Par défaut
    Merci faroukvazaha de votre réponse
    Pouvez vous m'aider à corriger les codes? et merci

  17. #17
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2006
    Messages : 70
    Par défaut Code qui marche pas!
    Bonjour,

    Je ne comprend pas :
    Parce que l'aide de VB6 te dis :
    Renvoie une valeur de type Variant (Date) indiquant la date et l'heure en cours fournies par la date et l'heure système de votre ordinateur.
    Syntaxe
    Now
    A priori c'est une instruction pour rien car "Now" contient la date du jour.

    D'autre part l'aide de VB6 te dis aussi:
    Utilisez le format de date américain (mois-jour-année) lorsque vous recherchez des champs qui contiennent des dates, même si vous n'utilisez pas la version américaine du moteur de base de données Microsoft Jet ; sinon, vous risquez de ne pas trouver les données. Utilisez la fonction Format de Visual Basic pour convertir la date. Exemple :

    rstEmployees.FindFirst "HireDate > #" & Format(mydate, 'm-j-aa' ) & "#"
    Bon courage

Discussions similaires

  1. Aucune différence entre un code qui marche et un qui ne marche pas
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 26/08/2010, 17h09
  2. [DOM] Code qui marche sous IE mais pas sous Firefox
    Par angoradefrance dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/03/2009, 14h29
  3. Code qui marche sur un poste mais pas sur un autre
    Par TOSCAN dans le forum Langage
    Réponses: 5
    Dernier message: 11/06/2008, 21h09
  4. code qui marche sur firefox et pas sur IE7
    Par taka10 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/03/2007, 11h59
  5. Code qui marche, mais pas la mise à jour
    Par Cablan dans le forum Access
    Réponses: 7
    Dernier message: 24/10/2005, 17h09

Partager

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