Double dans base de donnees

cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005 - 10 avril 2005 à 15:42
cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005 - 15 avril 2005 à 23:51
je suis occuppe a creer une appli dans laquelle les differents utilisateurs doivent creer leurs profils dans une base de donnees access
mais je n'arrive pas a empecher les doubles
comment puis je faire
je voudrais que si l'utilisateur veut creer un champ qui existe deja s'affiche un message d'erreur
merci d'avance de votre aide

9 réponses

zegamemaster Messages postés 27 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 14 avril 2005
11 avril 2005 à 14:11
Tout d'abord, quelle verison de vb utilise tu ? .net ou une version precedente ?

En .Net, ce que je fais, c'est creer une requete qui demande si la valeur d'un champ existe deja, si il y a au moins une reponse, alors, ca existe, et on demande de changer ce champ.

je donne les details au cas ou (Le sql est fait pour MySql mais tu peux adapter):

'Tu creer ta connexion
dim odbcConn as new OdbcConnection("connection string")
'tu peux utiliser un autre type de connexion si tu veux, mais c'est celle que j'utilise
dim result as new DataSet

'On creer l'adaptateur de donnees
Dim odbcDataAdap As New OdbcDataAdapter("SELECT * FROM user WHERE username='" & username & "'", odbcConn)

'On rempli le dataset
odbcDataAdap.Fill(result , "user")

'on compte les resultats
if result.Table("user").Rows.Count > 0 then
'ca existe
else
'ca existe pas
end if

voila, j'espere que ca va t'aider !!!
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
11 avril 2005 à 16:18
Salut, pourquoi lors de l'enregistrement de l'utilisateur, tu ne ferais pas un test pour savoir s'il existe ou pas le nom saisi, avec une simple commande de SELECT comme celle-ci :

SelCmd = "SELECT * FROM matable WHERE user='" & textbox1.text & "'"

ensuite tu test s'il y a 1 résultats ou plus et tu affiche un message en fonction du résultat


Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]&nbs
0
cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005
11 avril 2005 à 21:50
je vous remercie de votre aide
mais comment tester, est ce qu'il faut que je compte le nombre de resultats aa cette requete
selcmd correspond a quoi
peut tu me donner un peu plus d'info merci d'avance
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
11 avril 2005 à 22:19
Pardons j'ai juste zappé une ligne

En fait SelCmd est une variable String qui contient ma requette, soit :
Dim SelCmd as String

Ensuite di tu est en VB.Net pour savoir le nombre de résultats :
DataSet11.MaTable.Rows.Count

En VB6 il faut faire une petite procédure :
Dim i As Integer 'Variable compteur
Dim RS As Recordset 'Variable du recordset
Do Until RS.Eof 'Boucle pour comptage
i = i + 1 'Ajout +1 pour compter
RS.MoveNext 'Passage à l'enregistrement suivant
Loop


Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]&nbs
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zegamemaster Messages postés 27 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 14 avril 2005
11 avril 2005 à 23:39
Ben c'est ce que j'avais mis pour vb.net un peu plus haut, par contre, je l'avait jamais fait en vb6 donc voila la reponse
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
12 avril 2005 à 09:16
Zegamemaster > Dis moi est-ce que tu aurais une réponse à cette question : http://www.vbfrance.com/forum.v2.aspx?ID=430791 ? merci d'avance effectivement tu l'avais noté sorry.

cliclic1234 > sorry d'utiliser ton post pour poser ma question.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]&nbs
0
cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005
14 avril 2005 à 22:28
bonsoir
pas de prob pour ta question cboulas
je vous remercie de votre aide
mais ne vendez pas la peau de l'ours avant de l'avoir tuee
je suis en vb6 et votre code ne fonctionne pas
Dim i As Integer
Dim selcmd As String
selcmd = "SELECT * FROM tabclient WHERE client=" & Text2.Text & ""
Do Until rs.EOF 'Boucle pour comptage
i = i + 1 'Ajout +1 pour compter
rs.MoveNext 'Passage à l'enregistrement suivant
Loop
avec ca err91
variable objet ou variraable bloc non definie
et sinon apres la boucle je fais quoi
je compte sur vous
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
14 avril 2005 à 22:36
Salut voici un exemple complet :

dim rscltsrc as recordset
dim dbcltsrc as database
dim wscltsrc As Workspace

Set wscltsrc = DBEngine.Workspaces(0)
Set dbcltsrc = wscltsrc.OpenDatabase(tablefacture, False, False, "MS Access;PWD=password")

Set rscltsrc = dbcltsrc.OpenRecordset("Select * from clients Where tel like '" & tel1 & tel2 & tel3 & tel4 & tel5 & "*' ORDER BY nliv ASC", dbOpenDynaset)

Do Until rscltsrc.EOF 'Boucle pour comptage
i = i + 1 'Ajout +1 pour compter
rs.MoveNext 'Passage à l'enregistrement suivant
Loop


Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]&nbs
0
cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005
15 avril 2005 à 23:51
j'ai trouve encore plus simple
il suffit de faire un if rsrecordcount < 1 then ca marche
else ca marche pas
mercci beaaucoupde votre aide
0
Rejoignez-nous