Test sur un avance

Résolu
tayebchemingui Messages postés 12 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 19 septembre 2012 - 28 avril 2011 à 15:22
tayebchemingui Messages postés 12 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 19 septembre 2012 - 29 avril 2011 à 11:06
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 avril 2011 à 00:34
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.
3
tayebchemingui Messages postés 12 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 19 septembre 2012
29 avril 2011 à 11:06
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
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 avril 2011 à 16:40
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
0
tayebchemingui Messages postés 12 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 19 septembre 2012
28 avril 2011 à 17:58
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
0
Rejoignez-nous