Effectuer suppression champs dans BDD Access SQL avec VB
cs_ElChauve
Messages postés7Date d'inscriptionsamedi 10 novembre 2007StatutMembreDernière intervention14 juin 2008
-
14 juin 2008 à 19:46
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 2012
-
15 juin 2008 à 00:01
Bonjour,
Je développe un petit programme de location de matériel, et pour se faire il faudrait que je puisse supprimer la location créée dans ma BDD Access lors de la restitution de celui-ci.
Ma BDD se compose de 4 tables : CLIENTS(, Nom, Prenom ... ), PRODUITS(CodeCodeComm, CodeCli) et EMPRUNTER(CodeComm, CodeProd, QtéEmpr).
Voici le code de mon formulaire correspondant à la suppression de l'emprunt et de la réafectation des quantités de produits dans la BDD :
Private Sub btn_restituer_Click()
'Déclaration d'une variable cidecli ...
Dim codecli As String
' ... permettant de récuperer le code du client sélectionné
codecli = Right(Cmb_Clt, 5)
MsgBox codecli
'Recherche des numéros de commandes passées par le client sélectionné
Set Rs_Comm = New Recordset
With Rs_Comm
.ActiveConnection = Conn
.Open "select * from COMMANDE", , adOpenDynamic, adLockPessimistic
While Not Rs_Comm.EOF
If codecli = Rs_Comm("Code_Cli") Then
Dim codecomm As Integer
codecomm = Rs_Comm("Code_Comm")
MsgBox codecomm
'Recherche des matériaux empruntés
Set Rs_Empr = New Recordset
With Rs_Empr
.ActiveConnection = Conn
.Open "select * from Emprunter", , adOpenDynamic, adLockPessimistic
While Not Rs_Empr.EOF
If codecomm = Rs_Empr("Code_Comm") Then
Dim codeprod As String
codeprod = Rs_Empr("Code_Prod")
MsgBox codeprod
'Restitution des quantités empruntées du produit concerné
Dim qteempr As String
qteempr = Rs_Empr("Qte_Empr")
'Mise à jour des quantités du stock dans la base Produits
Set Rs_Produits = New Recordset
With Rs_Produits
.ActiveConnection = Conn
.Open "select * from PRODUITS", , adOpenDynamic, adLockPessimistic
While Not Rs_Produits.EOF
If codeprod = Rs_Produits("Code_Prod") Then
MsgBox Rs_Produits("Code_Prod")
Rs_Produits("QteRes_Prod") = (Rs_Produits("QteRes_Prod") + qteempr)
Rs_Produits("QteEmpr_Prod") = (Rs_Produits("QteEmpr_Prod") - qteempr)
Rs_Produits.Update
End If
Rs_Produits.MoveNext
Wend
End With
End If
Rs_Empr.MoveNext
Wend
' Rs_Empr.Delete
End With
End If
Rs_Comm.MoveNext
Wend
' Rs_Comm.Delete
End With
btn_restituer.Enabled = False
'Ceci permet d'afficher seulement les boutons nécessaires
If Lst_Prod.ListCount = 0 Then
btn_ajout.Enabled = True
btn_retirer.Enabled = True
btn_valider.Enabled = True
End If
End Sub
Comment supprimer les champs correspondant au code de la commande à restituer dans les tables EMPRUNTER et COMMANDE ??
Merci pour votre aide
A voir également:
Effectuer suppression champs dans BDD Access SQL avec VB
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 15 juin 2008 à 00:01
Salut,
à défaut de pouvoir répondre directement
à ta question (trop fatigué pour pouvoir suivre l' enchainement de ton code), je te conseille vivement de ne pas procèder par suppression mais par saisie de la quantité restituée sur la même commande.
Tu ajoutes un champ QteRend, valeur par defaut 0.
EMPRUNTER(CodeComm, CodeProd, QtéEmpr, QtéRend).
Ainsi QteEmpr - QteRend te donne ce qu' il reste encore chez le client.Et tant mieux s' il rend tout.
Autre raison pour ne pas supprimer, il faut toujours garder trace.Et pour cela tu dois aussi ajouter un champ DateCommande.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.