Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/08/2007, 13h33   #1
Invité régulier
 
Inscription : février 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 43
Points : 9
Points : 9
Par défaut supprimer automatiquement un enregistement

je vais appel une nouvelle fois a votre savoir :

je voudrais supprimer automatiqueemnt une facture emise lors d'une annulation

table activité c'est la que ce trouve l' indication :Annulation
table facture la facture emise of course

en commun le client et le lot ( bien immobilier) dans les deux tables

evenement ou macro ? si quelqu un avait le bout de code ? et l'explication simple de la mise en oeuvre ça m' arrangerait bien
merci a tous
patgame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2007, 18h10   #2
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220
Bonjour,

Au plus simple :

1) Créer une requete suppression avec récupération des données critères dans le formulaire

2) Créer un bouton qui lorsque tu cliques exécute la requete suppression

A+

Jeannot
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2007, 23h49   #3
Invité régulier
 
Inscription : février 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 43
Points : 9
Points : 9
Par défaut merci petite precision

les critéres ??? tu m expliques en detail je débute suppression sur quel formulaire et le bouton je le mets ou
merci a toi

en fait ds mon formulaire activité je note annulation et a partir de la je dois supprimer la facture emise table facture et le lot ds la table lot
lot et facture en correspondace avec la ref lot et la ref client de la table activité s agit pas de tout virer la manoeuvre est delicate
sur une requete simple pas de probleme je sais faire mais la c un truc du genre

si mon champ resultat de la table activité est noté annulation j' annule ds la table lot, le lot dont la ref client ET la ref lot requete activité = ref lot et ref client table activité et idem pour la facture il faut que ce soit pour le meme client et le meme lot
c ça que je ne sais pas ecrire ?
patgame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2007, 09h14   #4
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220
Bonjour,

Je récapitule :

1) tu as 3 tables et non 2
2) tu supprimes une facture de la table "Factures" lorsque tu écris Annulation dans la table "Activités"
3) tu supprimes un lot de la table "Lots" lorsque tu écris Annulation dans la table "Activités"

Processus :

Au travers de ton formulaire tu choisis un client et un N° le Lot dans la table T_Activité et tu inscris "Annulation" dans un champ. C'est alors que tu souhaites supprimer les deux enregistrements

Un Proposition de solution :

Tu crées deux requetes SUPPRESSION
- une Sur la table "Factures" avec comme Champs Client et Lot. Dans la zone Critères tu récupères le nom des controles Client et lot du Formulaire Activite par l'intermediaire du générateur d'expression
- une sur la table "Lots" : Idem ci-dessus

Remarque : en procédant par le générateur de requetes, tu pourras facilement récupérer le code SQL pour l'utiliser dans la procédure évènementielle à créer.

Dans le controle où tu écris "ANNULATION", tu crées une procédure évènementielle sur Après_MAJ qui exécutera tes deux requetes du style :

Code :
1
2
3
4
5
6
7
8
9
Dim strSqlDelFacture as String, strSqlDelLot as String
 
strSqlDeFacture = "DELETE ...." - Syntaxe SQL récupérée 1ère Requete
strSqlDelLot = "DELETE ..." - Syntaxe SQL récupérée 2ème Requete
 
if Ucase(ActiveControl) = "ANNULATION" then
 DoCmd.RunSql strSqlDelFacture
 DoCmd.RunSql strSqlDelLot
end if
En espérant t'avoir aidé

Jeannot
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2007, 13h34   #5
Invité régulier
 
Inscription : février 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 43
Points : 9
Points : 9
Par défaut super sympa re petite précision

tu m'étonnes que tu m' as aidé cours accéléré tout ça, en plus je suis incapable d'écrire un bout de code alors tu penses !
je résume ds les criteres je mets simplement par l intermediaire du generateur d'expression par exple quelque chose comme réf client table x = ref client table y ,c'est ça ? et ainsi de suite sur les champs concernés donc pour recuperer le codes sql je me mets en vue sql et je fais copié collé pour le mettre ds le bout de code que tu m as donné ???
patgame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2007, 16h25   #6
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220
En effet ce pourrait être la démarche ...
Attention, cependant les données issues du formulaire seront variables donc il faudra concaténer

exemple de code

Code :
1
2
3
4
"DELETE T_Facture.CodeClient,T_Facture.CodeLot
FROM T_Facture
WHERE T_Facture.CodeClient = " & Me.CodeClient & 
" AND T_Facture.CodeLot = "  & Me.CodeLot
La syntaxe Sql que tu récupères est en ble et la partie variable liée au Formulaire principal est en rouge (Me. = Le formulaire principal qui contient ton champ

Bon amusement

Jeannot
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2007, 20h54   #7
Invité régulier
 
Inscription : février 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 43
Points : 9
Points : 9
Par défaut ok merci je fais pareil pour les 2 codes

ok je refais ce meme bout de code pour lot je suppose qui sera l instruction 2 sql de ton premier envoi de code si j ai bien tout compris ?
bon ben yaka faukon quoi lol !
merci a toi trop impatient de m'y coller mais si un bleme je sais ou m'adresser pour finaliser ça y a pas de raison ça doit marcher et ça va marcher

bonne semaine
pat
patgame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 15h08   #8
Invité régulier
 
Inscription : février 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 43
Points : 9
Points : 9
Par défaut je suis perdu avec le code mal retranscrit

ma structure de base et les tables et formulaires concernés

formulaire activité par client mais c' est le sous formlulaire qui est concerne c'est la que je mets "annulation Notaire" : resultat activite saisie requête sous formuliare ( c le nom du sous formulaire )


table lots champs concernés :clients ( c la reference)
RéfLots

table Facture Immo idem pour les deux champs

merci a toi pour ce bout de code je vaius l etudier pour essayer de comprendre comment ça marche

voici ce quej avais note sur le champ resultat apres maj

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Résultat_BeforeUpdate(Cancel As Integer)
Dim strSqlDelFacture_Immo As String, strSqlDelLots As String
 
strSqlFacture_Immo = "DELETE ...." - "DELETE Facture_Immo.CodeClient,facture_immo.CodeLot"
FROM Facture_Immo
WHERE Facture_Immo.CodeClient = " & Résultat_Activité_Saisie_Requête.CodeClient & "
" AND Facture_Immo.CodeLot = "  & Résultat Activité_Saisie_Requête.CodeLot
strSqlDelLots = "DELETE ..." - WHERE Lots.CodeClient = " & Résultat Activité_Saisie_Requête.CodeClient & "
" AND Lots.CodeLot = "  & Résultat_Activité_Saisie_Requête.CodeLot
 
If UCase(ActiveControl) = "Annulation Notaire" Then
 DoCmd.RunSQL strSqlDelFacture_Immo
 DoCmd.RunSQL strSqlDelLots
End If
End Sub
patgame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2007, 06h53   #9
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220
Hello,

Attention, j'avais écrit "DELETE ..." pour indiquer le début de la syntaxe.
Dans mon post précédent je t'avais mis un exemple plus concret :

Citation:
exemple de code

Code :
Code :
1
2
"DELETE T_Facture.CodeClient,T_Facture.CodeLot FROM T_Facture WHERE T_Facture.CodeClient = "  & Me.CodeClient & 
" AND T_Facture.CodeLot = "   & Me.CodeLot
La syntaxe Sql que tu récupères est en bleu et la partie variable liée au Formulaire principal est en rouge (Me. = Le formulaire principal qui contient ton champ
tu as écrit :
Citation:
Code :
1
2
3
4
strSqlFacture_Immo = "DELETE ...." - "DELETE Facture_Immo.CodeClient,facture_immo.CodeLot FROM Facture_Immo
WHERE Facture_Immo.CodeClient = " & Résultat_Activité_Saisie_Requête.CodeClient & " AND Facture_Immo.CodeLot = " & Résultat Activité_Saisie_Requête.CodeLot
strSqlDelLots = "DELETE ..." - WHERE Lots.CodeClient = " & Résultat Activité_Saisie_Requête.CodeClient & "
" AND Lots.CodeLot = " & Résultat_Activité_Saisie_Requête.CodeLot
La partie en rouge est en trop et dans la strSqlDelLots, il te manque toute la partie "DELETE ... et FROM ..." comme pour strSqlDelFacture

Bon courage
__________________
Jeannot

Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA

Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h28.


 
 
 
 
Partenaires

Hébergement Web