[VBA/Access 2000] Comparer valeur champ d'édition avec champ table

Comparer valeur champ d'édition avec champ table [VBA/Access 2000] - VB/VBA/VBS - Programmation

Marsh Posté le 09-06-2004 à 15:34:39    

Salut, j'aimerai savoir si quelqu'un peut m'aider.
Je voudrai savoir si on peut comparer le texte saisi dans une zone d'édition sous VBA Access 2000 avec les valeurs contenues dans un champ d'une table spécifique?Si oui, comment faire? Je souhaite tester la présence d'un client lorsque l'on me demande son nom dans un formulaire, si il est absent, le formulaire de coordonnées de ce client ne s'ouvre pas (jusqu'à maintenant, lorsqu'il ne trouvait pas le client , il s'ouvrait vierge de toutes informations).
 
J'aimerai également savoir comment empêcher l'ouverture simultanée d'un même formulaire par plusieurs personnes travaillant en réseau?
 
Merci d'avance.
++++ [:alucard]  [:tieumlar]


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 09-06-2004 à 15:34:39   

Reply

Marsh Posté le 10-06-2004 à 07:40:08    

Envoie une requete et vois si le client existe.

Reply

Marsh Posté le 10-06-2004 à 09:25:27    

Avec une requête, j'essaie...Merci !!!


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 10:43:24    

Il m'affiche la table, moi je veux juste qu'il me dise si le client saisi dans le formulaire existe ou non...
merci qd même....
++


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 10:58:15    

Il te faut une requete liée au bouton du formulaire qui teste le présence du client.
Tu crée une requete VBA, tu récupère le résultat dans un recordset, et si ton recordset n'est pas vide, c'est que le client existe. Tu peux ouvrir le formulaire coordonnées.
Si tu veux le code, fais moi signe...
 

Reply

Marsh Posté le 10-06-2004 à 11:25:06    

Ouais, je veux bien si ça te dérange po...
J'ai dû passer 12hrs de cours sur access au bahut, et les recordset 1h alors pas top mon niveau...
Merci bcp!!!


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 11:28:06    

Par hasard, tu saurais pas comment on fait pour envoyer des mails ou des fax via access?
Pour les mails, g trouvé http://www.info-3000.com/vbvba/envoiemailoutlook.php, mais le prog ne marche pas : il me dit "impossible d'ouvrir Email.Impossible d'ouvrir le fichier spécifié"????
Merci bien, tu m'aides vachement, c sympa!!!


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 11:40:51    

Code :
  1. Dim strNom As String
  2. Dim rs As Recordset
  3. Dim qdReq As QueryDef
  4.     ' Nom du client
  5.     strNom = Texte1.Text
  6.     ' Création de la requete
  7.     Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM MaTable WHERE MaTable.Client LIKE '" & strNom & "';" )
  8.     Set rs = qdReq.OpenRecordset
  9.     ' Le client existe ?
  10.     If rs.BOF And rs.EOF Then
  11.         Exit Sub
  12.     End If
  13.    
  14.     ' J'ouvre le formulaire coordonnées.


A coller dans l'évènement du bouton.

Reply

Marsh Posté le 10-06-2004 à 13:54:06    

JihemAir a écrit :

Code :
  1. Dim strNom As String
  2. Dim rs As Recordset
  3. Dim qdReq As QueryDef
  4.     ' Nom du client
  5.     strNom = Texte1.Text
  6.     ' Création de la requete
  7.     Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM MaTable WHERE MaTable.Client LIKE '" & strNom & "';" )
  8.     Set rs = qdReq.OpenRecordset
  9.     ' Le client existe ?
  10.     If rs.BOF And rs.EOF Then
  11.         Exit Sub
  12.     End If
  13.    
  14.     ' J'ouvre le formulaire coordonnées.


A coller dans l'évènement du bouton.


 
Merci bien, je vais essayer tout de suite, t un crack toi!!!
[:acherpy]


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 14:19:15    

JihemAir a écrit :

Code :
  1. Dim strNom As String
  2. Dim rs As Recordset
  3. Dim qdReq As QueryDef
  4.     ' Nom du client
  5.     strNom = Texte1.Text
  6.     ' Création de la requete
  7.     Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM MaTable WHERE MaTable.Client LIKE '" & strNom & "';" )
  8.     Set rs = qdReq.OpenRecordset
  9.     ' Le client existe ?
  10.     If rs.BOF And rs.EOF Then
  11.         Exit Sub
  12.     End If
  13.    
  14.     ' J'ouvre le formulaire coordonnées.


A coller dans l'évènement du bouton.


 
Euh, ça marche pas (p'tet parce ke je suis nul!!!)
G mis :

Code :
  1. Private Sub Afficher_les_coordonnées_Click()
  2. On Error GoTo Err_Afficher_les_coordonnées_Click
  3.     Dim stDocName As String
  4.     Dim stLinkCriteria As String
  5.    
  6.     Dim strNom As String
  7.     Dim rs As Recordset
  8.     Dim qdReq As QueryDef
  9.    
  10.     stDocName = "Clients"
  11.    
  12.     stLinkCriteria = "[Client]=" & "'" & Me![Client] & "'"
  13.  
  14.         ' Nom du client
  15.         strNom = Texte1.Text
  16.         ' Création de la requete
  17.         Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM Clients WHERE Clients.Client LIKE '" & strNom & "';" )
  18.         Set rs = qdReq.OpenRecordset
  19.         ' Le client existe ?
  20.         If rs.BOF And rs.EOF Then
  21.               Exit Sub
  22.         End If
  23.      
  24.       ' J'ouvre le formulaire coordonnées.
  25.         DoCmd.OpenForm stDocName, , , stLinkCriteria
  26.         Call MsgBox("Aucun client saisi. Veuillez saisir un client.", vbOKOnly + vbCritical, "Vérification du client" )
  27.    
  28. Exit_Afficher_les_coordonnées_Click:
  29.     Exit Sub
  30. Err_Afficher_les_coordonnées_Click:
  31.     MsgBox Err.Description
  32.     Resume Exit_Afficher_les_coordonnées_Click
  33.    
  34. End Sub


 
Mais je comprends pas par quoi remplacer " strNom = Texte1.Text"?
C koi "Texte1.Text"?
 
Le message d'erreur est :
"Objet requis"
 
Dsl de t'embêter avec et merci!!! :jap:


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 14:19:15   

Reply

Marsh Posté le 10-06-2004 à 14:25:00    

Désolé g répondu trop vite!!
Ca marche avec "Me![Client]" à la place de "Texte1.Text", c trop cool, merci!!!!!!!!!!!  ;)   (Client est le nom de la zone d'édition)
Par contre, si on met rien, il me dit "Utilisation incorrecte de Null", t'as une idée?
Merci, merci, merci!


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 14:30:07    

Il faut tester si la textbox contient qq chose:
If Me![Client] = "" then Exit Sub
avant de balancer la requete.

Reply

Marsh Posté le 10-06-2004 à 14:48:06    

Vi t'as raison ,je l'avis mis avant, c'était le seul truc qui marchait d'ailleurs! :lol
Merci bien!!!
 
T'aurais pas une astuce pour l'histoire des mails ou des faxs?
 
Je voudrai pas abuser, mais si tu me trouve trop envahissant, te gène pas dis-le moi, je comprendrai...
 
Tu saurais pas par hasard comment on peut empêcher deux utilisateurs d'ouvrir le même formulaire en même temps sur un réseau?
 
Merci!!!!! ;)


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 14:55:19    

Je sais pas pourkoi, mais  If Me![Client] = ""  marche pas,  
mais If [Client] <> ""  marche, c louche!!
Merci, pour l'aide, c super trop cool!!!:D


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 14:58:58    

Pour les mails, je ne sais pas. Pour le formulaire, c'est fait pour ça: que plusieurs utilisateurs l'utilisent en même temps.  
Si tu ne veux pas,tu peux mettre la base en mode exclusif.

Reply

Marsh Posté le 10-06-2004 à 15:05:48    

Tiens, je t'envois le code, c ton oeuvre tout de même et qui marche nickel!!!!
Private Sub Afficher_les_coordonnées_Click()
On Error GoTo Err_Afficher_les_coordonnées_Click
 
    Dim stDocName As String
    Dim stLinkCriteria As String
     
    Dim strNom As String
    Dim rs As Recordset
    Dim qdReq As QueryDef
     
    stDocName = "Clients"
     
    stLinkCriteria = "[Client]=" & "'" & Me![Client] & "'"
   
        ' Vérification si le champ n'est pas rempli
        If Me![Client] <> "" Then
            ' Nom du client
            strNom = Me![Client]
            ' Création de la requete
            Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM Clients WHERE Clients.Client LIKE '" & strNom & "';" )
            Set rs = qdReq.OpenRecordset
            ' Le client existe ?
            If rs.BOF And rs.EOF Then
                Call MsgBox("Client inconnu de ICS.", vbOKOnly + vbExclamation, "Erreur saisie du client" )
                Exit Sub
            End If
        'Si le champ est vide
        Else
            Call MsgBox("Aucun client saisi. Veuillez saisir un client.", vbOKOnly + vbExclamation, "Vérification du client" )
            Exit Sub
        End If
       
      ' J'ouvre le formulaire coordonnées.
        DoCmd.OpenForm stDocName, , , stLinkCriteria
 
     
Exit_Afficher_les_coordonnées_Click:
    Exit Sub
 
Err_Afficher_les_coordonnées_Click:
    MsgBox Err.Description
    Resume Exit_Afficher_les_coordonnées_Click
     
End Sub
 
Je suis en stage et moi g plus appris le C/C++, mais bon, mon boss m'a demandé si je pouvais empêcher qu'une personne vienne écrire sur un formulaire pendant qu'une deuxième le lit ou écrit dessus.
Pour le mode exclusif , c où?


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 15:20:58    

C'est dans les options de la base. Un seul utilisateur peut l'ouvrir à un moment donné.  
Mais tu peux expliquer à ton boss que Access gère le multi-utilisateurs et même qu'il est fait pour ça. Que plusieurs personnes pointent sur la base ne le gêne pas. (Dans certaines limites, je crois qu'à partir de 20 personnes, les performances se dégradent)...

Reply

Marsh Posté le 10-06-2004 à 15:21:50    

Ca devrait aller alors, merci pour le coup de pouce, t super cool!!!


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Marsh Posté le 10-06-2004 à 15:22:02    

;)


---------------
Est-ce de l'info que tu respires ? Arrête d'essayer de programmer, fais-le !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed