Access et VBA

Fermé
Sophie - 1 mai 2002 à 21:35
 Utilisateur anonyme - 3 mai 2002 à 22:11
Bonjour,
Je fais une base de donnée sur Access et VBA, mais sans aucune connexion. Dans un formulaire de Factures (lié à ma table Factures), j'insère un numéro de facture à l'aide d'une requête pour obtenir le plus grand numéro + 1 (c'est un champ integer et non no automatique car je veux pourvoir modifier le numéro de la facture), MAIS j'aimerais savoir comment faire pour savoir si le numéro modifié existe déjà, car sinon, il modifie simplement la facture portant ce numéro avec les nouvelles données insérées. J'avais pensée essayé une requête avec EXISTS, mais ça ne semble pas retourner une valeur booléenne. Je suppose alors que je dois passer au travers les recordset et comparer... mais, j'ai aucune idée comment-faire! Merci à l'avance!
Sophie

5 réponses

Utilisateur anonyme
1 mai 2002 à 22:25
mah que, déjà à la base, je te dirais volontiers, en toute logique ton numéro de facture est sensé être une clef primaire, donc si tu modifies un numéro de facture en en choisissant un qui existe déjà, normalement tu devrais te faire envoyer bouler, et le fait qu'au lieu de ça, en modifiant ton numéro X en numéro Y, il affecte la facture N°Y, me fait penser que c'est peut-être plutôt du côté de l'interface qu'il y a un problème. Ton numéro est dans une zone de liste modifiable ou un truc comme ça?

kinder.surprise,
le maton du matou
0
Utilisateur anonyme
1 mai 2002 à 22:26
à moins que j'aie mal compris la question...

kinder.surprise,
le maton du matou
0
Je viens juste de comprendre ce que tu voulais dire... c'est vrai que c'était pas claire dans ma question!
J'ai oublié de préciser que lorsque je dis que je veux pouvoir modifier le numéro de la facture... je veux dire que je veux pouvoir le modifier lors d'une nouvelle facture. Il n'est pas possible de modifier le numéro lors d'une entrée en mode modification ou autre... C'est juste que l'ors d'un ajout, j'attribue un (numéro automatique) au form load avant même qu'il saisisse les données. Seulement là, il peux modifier le numéro, avant même d'ajouter la ligne à la table.
Sophie
0
Salut,
Pour ceux qui rencontrerait un problème semblable au mien... j'ai fini par trouver ce que je cherchais à force d'essayer. Voilà donc le petit bout de code dont j'avais besoin!
Private Sub txtNoCommande_LostFocus()

If strModeCommande = "NouvelleCommande" Then

Dim rs As New ADODB.Recordset
Set rs = Application.CurrentProject.Connection.Execute("SELECT * FROM Commandes WHERE NoCommande = " & txtNoCommande.Value)
If (rs.EOF) = False Then
MsgBox "Ce numéro de commande existe déjà!", vbExclamation, "Erreur"
txtNoCommande.SetFocus
Set rs = Application.CurrentProject.Connection.Execute("SELECT (Max(Commandes.NoCommande)+1) FROM Commandes")
If Not IsNull(rs.Fields(0)) Then
txtNoCommande = rs.Fields(0)
End If
End If
End If

Exit Sub

End Sub
0

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

Posez votre question
Utilisateur anonyme
3 mai 2002 à 19:02
si on pouvait décerner un prix du mémèbre le plus urbain des foroumes je voterais pour toi Sophie, c'est bien rare que l'auteur d'une question vienne lui/elle-même apporter la réponse qu'il/elle a trouvée, pour le bénéfice de tous!

Passe donc au café des mémèbres, on te paiera un coup à boire! (deux foroumes à droites)

kinder.surprise,
le maton du matou
0
Et bien Kinder.surprise...
Je suis pas certaine de comprendre vraiment le sens de 'mémèbre' ni non plus de savoir si ta remarque est positive ou négative... mais, dans le doute, je vais faire comme si c'étais positif et te remercier!
Ciao,
Sophie
0
Utilisateur anonyme > Sophie
3 mai 2002 à 22:11
ah oui j'ai anticipé (-:

je parle des membres (de CCM). Jadis, l'un deux fit une coquille qui resta à la postérité et nous voilà maintenant memebres.

oui ma remarque est positive! il y a parfois des posteurs qui ne prennent même pas la peine d'un bonjour, d'un svp, d'un merci, et même qui agressent les autres. Quant à toi, non seulement tu nous as épargné ça mais en plus, et vraiment ce n'est pas fréquent, tu as trouvé la réponse à ton problème et tu es venue la donner. C'est chouette! vraiment!

le café c'est deux fora plus loin... enfin deux forums quoi...

kinder.surprise,
le maton du matou
0