Test sur un avance [Résolu]

Signaler
Messages postés
12
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
19 septembre 2012
-
Messages postés
12
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
19 septembre 2012
-
Bonjours le professions

je cherche le code pour laquelle je peux tester si un avance est déjà saisie dans le même date pour le même salarié donc on peut pas le rajouter donc il faut je viens d'ajouter un avance a un salarié que VB6 fait un teste sur la basse de donnée "SQL" dans le tableau avance s'il trouve que cette avance est déjà saisie donc il affiche un message d’erreurs donc il faut quand trouve pas deux avance qui ont le même date pour le même type et le même personne espérant que vous m'avez compris et merci

[b]Cordialement

Chemingui Tayeb/b

4 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Tu dois, à un endroit dans ton code, lire des données depuis ta table.
Tu utilises pour cela un RecordSet.
Si ce n'est pas le cas, charge une source qui parle de ADODB et tu verras comment faire cette requète SQL et comment lister les résultats obtenus.

En ce qui concerne le code que tu nous montres :
Es-tu sûr de la syntaxe ?
Parce que "Commenatire" écrit comme ça risque de ne pas fonctionner

De quels types sont les champs de ta table ?
Sont-ils tous de type texte ? Même les chiffres comme "matricul" ou "Montant" ?
Si ce sont des champs numériques, il ne faut pas mettre de ' pour encadrer les valeurs.

Tu envoies la MsgBox avant d'avoir fait l'insertion : pas logique

La commande .Execute accepte des paramètres qui peuvent de renvoyer des informations pour savoir si tout s'est bien passé. Ce serait bête de ne pas lire cette info avant de poursuivre.
Messages postés
12
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
19 septembre 2012

Bonjour Jack
j'ai tapé cette requete et ça marche merci pour votre attention



Dim rs As New ADODB.Recordset
req "select * from avoir_deduction where matricul '" & txtmatricule.Text & "' and code_d = '" & txtcoded.Text & "' "
rs.Open req, Cn, adOpenDynamic, adLockOptimistic

If rs.RecordCount <> 0 Then
b = MsgBox("Deja saisi")
Else

'tu saisi le reste de ton requête
end if
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut Chemingui

Il faudrait savoir sur quel type de base de données tu travailles et avec quel genre de connexion (ADODB, ADODC, DAO ...)
Il suffira surement de faire une requête SQL simple pour récupérer l'info, mais on ne connait rien de ta table/tableau.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
[img]http://allproj
Messages postés
12
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
19 septembre 2012

Salut Jack

j'utilise base de donnée MySQL Query Browser et mon genre de connexion (ADODB)
j'ai crée les tableau salarié et deduction je veux faire le teste que je t'ai parlé déja

ce code je le mit derrière la bouton valider

Dim rz As String

rz = " insert avoir_deduction ( matricul, Montant, Valable_du, Valable_au, Commenatire, code_d )values ('" & txtmatricule.Text & "','" & txtmontant.Text & "','" & DTPicker1.Value & "','" & DTPicker2.Value & "','" & txtcommentaire.Text & "','" & txtcoded.Text & "')"


a = MsgBox("enregistrement effectué avec succé", vbInformation, "nom de mon application")
Cn.BeginTrans
Cn.Execute rz
Cn.CommitTrans