[access] vérifier si un enregistrement se trouve ds une tabe

vérifier si un enregistrement se trouve ds une tabe [access] - Programmation

Marsh Posté le 01-08-2002 à 03:37:56    

lorsque je clic sur un bouton dans mon formulaire je voudrais qu il vérifie si le nom contenu dans un champ de mon formulaire  (disons texte1)se trouve dans ma table "pret" et dans se cas la il exécutera une action sinon il continuera normalement ... enfin cette derniere partie se traduit par juste un  
 
IF (texte1 est contenue dans pret)  
 ...  
 executer action  
 ...
ENDIF

Reply

Marsh Posté le 01-08-2002 à 03:37:56   

Reply

Marsh Posté le 01-08-2002 à 12:58:10    

tu veux faire ca en JS !!!
 
 
je te deconseille car ca veux dire que ton JS fait une requete sur ton serveur et donc nimporte kel internaute en lisant les sources de ton JS saura ton mots de passe pour faire ce kil veux sur ta bdd !!!
 
fait plutot charger ca  (toutes les verfis de champ avant et inclus ca dans ta page- parametres cachés dans ton JS !)  
 
 
+ secure

Reply

Marsh Posté le 02-08-2002 à 10:53:10    

Non, a vrai dire je voudrais juste faire ca dans le code de mon bouton dans access meme cad en VB
J ai d ailleur trouver en cherchant dans des livre une solution mais il y a 1 probleme voir ***
 
Private Sub Commande11_Click()
   Dim RS As Recordset
   Dim DB As Database       '**** type défini par  < --ici     l                                utilisateur non défini******
   Dim Recherche As String
   Dim trouv As Boolean       'stock la valeur trouvée
   
   Set trouv = False
   Set Recherche = "Ben"    'on recherchera l enregistrement Ben  
   Set DB = Application.CurrentDb   'utilise le bd actuelle
   Set RS = DB.OpenRecordset("Pret", dbOpenTable, dbReadOnly)  'ini le pointeur
   RS.MoveFirst             'place sur le premier record
   Do
    If (RS.Fields("Pret" ).Value = Recherche) Then   'si la valeur est Ben
        trouv = True                ' on a trouvé !
        MsgBox RS.Fields("Pret" ).Value, vbOKOnly, ""    'Affiche donc Ben
    End If
    RS.MoveNext             'sinon on passe a l enreg suivant
   Loop Until RS.BOF = True 'Fin de fichier
   
End Sub
 
 
ce que je trouve spécial c est que dans l aide d access ils utulise aussi ce Dim DB As Database  alors pourquoi cela ne fonctionne t  il pas faut il initialiser qq ch avant ???
 
D avance merci !      

Reply

Marsh Posté le 02-08-2002 à 11:03:41    

Comme d'hab : tu va dans l'éditeur Visual Basic, tools -> reference et tu coches Microsoft DAO 3.6 Objects.

Reply

Marsh Posté le 02-08-2002 à 19:05:11    

Merci mais j ai encore un autre probleme
 
Erreur voir ****
 
 
Private Sub Commande0_Click()
   Dim RS As Recordset
   Dim DB As Database
 
   
   Set DB = Application.CurrentDb   'utilise le bd actuelle
   Set RS = DB.OpenRecordset("Article", dbOpenTable, dbReadOnly)  '**** incompatibilité des types ****
   RS.MoveFirst             'place sur le premier record
   Do
    If RS.Fields("CodeArt" ).Value = 2 Then   'si la valeur est Ben
        MsgBox RS.Fields("Pret" ).Value, vbOKOnly, ""    'Affiche donc Ben
    End If
    RS.MoveNext             'sinon on passe a l enreg suivant
   Loop Until RS.BOF = True 'Fin de fichier
   
End Sub
 
 
Faut il encore activer une autre librairie ???
voici celles qui sont déja activées :  
  Visual Basic for Application
  Microsoft Access 10.0 Object Library
  OLE Automation
  Microsoft ActiveX Data Objects 2.7 library
  Microsoft DAO 3.6 Object Library
  Microsft Visual Basic for Application Extensibility 5.3

Reply

Marsh Posté le 02-08-2002 à 21:46:44    

la merde c que ton truc passera seulement sous IE avec ton VB !!

Reply

Marsh Posté le 03-08-2002 à 11:13:27    

a vrai dire ma bd n a rien a voir avec le net ! elle ne sera meme pas utulisée en réseau !

Reply

Marsh Posté le 03-08-2002 à 20:13:15    

pourquoi tu fais pas tout simplement une query SQL : si on te retourne 1 élément, c'est que ce que tu cherches est dans la table. Si la query retourne 0 élément, il n'y est pas.

Reply

Marsh Posté le 03-08-2002 à 22:59:47    

A vrai dire, j aurais préféré le faire via le code mais bon si tu m explique comment faire ok pourquoi pas ...
ceci dit sinon si tu as le courrage je t envoie ma bd d exemple et alors si tu me fait juste le code pour la recherche se serais gentil
Mais je ne sais pas si tu as le temps ...


Message édité par the big ben le 03-08-2002 à 23:05:44
Reply

Marsh Posté le 04-08-2002 à 11:07:44    

Ben tu te sers d'une requête du style:
 
SELECT COUNT(*) FROM Table
WHERE Champ_définissant_ton_enregistrement = Valeur;
 
Après tu regarde si le résultat est supérieur à 0 et le tour est joué.
 
 
J'ai fais ce style de truc, mais en php. Je te file qd même le code.
 

Code :
  1. case 'record':
  2. if ($artist=="" || $title=="" ) {
  3.  echo "Merci de remplir le formulaire correctement.";
  4.  }
  5.  else {
  6.  $sql="SELECT COUNT(*) FROM liste WHERE Artiste='".$artist."' AND Titre='".$title."'";
  7.  $result=mysql_query($sql);
  8.  $row=mysql_fetch_array($result);
  9.   if ($row[0] != 0) {
  10.   echo "Attention, enregistrement présent dans la bdd<br>";
  11.   }
  12.   else {
  13.    echo "Enregistrement dans la bdd...<br>";
  14.    $sql="INSERT INTO liste (Artiste,Titre,Style) VALUES ('".$artist."','".$title."','".$type."')";
  15.    mysql_query($sql);
  16.    echo "Enregistrement réussi.";
  17.   }
  18.  }
  19.  break;


Message édité par kfman le 04-08-2002 à 11:25:33
Reply

Marsh Posté le 04-08-2002 à 11:07:44   

Reply

Marsh Posté le 06-08-2002 à 10:01:16    

Bon voilà comment ça marche :
 
J'ai une table (table1) avec Nom et Prenom.
J'ai un form avec un bouton (command0) et un champ texte (text1).
 
Je saisis un nom dans mon champ texte et quand je clique sur mon bouton, Access me dit si ce nom existe déjà dans la colonne nom.
 

Code :
  1. Private Sub Command0_Click()
  2. Dim cnn1 As ADODB.Connection
  3. Dim rst1 As ADODB.Recordset
  4. Set cnn1 = CurrentProject.Connection
  5. Set rst1 = New ADODB.Recordset
  6. rst1.Open "SELECT COUNT(*) as Nb FROM Table1 WHERE Name='" & Me.Text1 & "';", cnn1, adOpenStatic, adLockReadOnly
  7.     If rst1!nb = 0 Then
  8.         MsgBox "Le champ recherché n'a pas été touvé"
  9.     Else
  10.         MsgBox "Le champ recherché a été touvé"
  11.     End If
  12. End Sub

Reply

Sujets relatifs:

Leave a Replay

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