Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2973 connectés 

 


Dernière réponse
Sujet : [access] vérifier si un enregistrement se trouve ds une tabe
latruffe 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


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
latruffe 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

kfman 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;

the big ben 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 ...
latruffe 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.
the big ben a vrai dire ma bd n a rien a voir avec le net ! elle ne sera meme pas utulisée en réseau !
jolly la merde c que ton truc passera seulement sous IE avec ton VB !!
the big ben 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
latruffe Comme d'hab : tu va dans l'éditeur Visual Basic, tools -> reference et tu coches Microsoft DAO 3.6 Objects.
the big ben 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 !      
jolly 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
the big ben 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

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)