Re: Suppression dans table et fichier

Posté par drcharly93 le 11/4/2006 16:28:51
Bonjour Alicia,

Il est vrai que si l'on ne comprends pas bien le problème il est difficile de répondre.

Pour la question 1
Primo il est nécessaire de savoir si tu travaille avec des tables fichiers ou bien des tables mémoires.
Je vais donc m'efforcer de donner une solution qui fonctionne avec les deux type de table.
La seule contraite à cette technique est qu'il est nécessaire de faire figurer dans cette table la colonne contenant l'identifiant unique de l'enregistrement.
Cette colonne pourra être visible ou invisible selon l'esthetique attendue.

Ici on immagine que la clé unique du fichier fournisseur se nomme :
FOCLEUNIK
La table : REQ_Fourn
//Si il y a des enregistrements affichés dans la table
Si REQ_Fourn..Occurrence  = 0 Alors Retour
//Si une ligne de la table est sélectionnée
Si TableSelect
//On demande confirmation
SI OuiNon("Confirmez-vous la suppression de cette fiche") ALORS
 //On positionne le curseur fichier sur le bonne enregistrement en fonction de la clé unique dont la valeur est stockée dans REQ_Fourn.FOCLEUNIK
 Si HLitRecherche(FOURNISSEUR, FOCLEUNIK, REQ_Fourn.FOCLEUNIK) Alors
  HSupprime(FOURNISSEUR)
 Fin


Pour le second problème
Une technique simple permet de remplir une table mémoire avec le contenu d'une requête
Rs est une source de donnees
Sql est une chaine

//Création de la requête
Sql =
[
SELECT FOCLEUNIK AS FOCLEUNIK,
 FONOM AS Nom,
 ADR1 AS Adresse,
 ADR2 AS [Complément],
 CP AS [Code Postal],
 VILLE AS VILLE
 FROM FOURNISSEUR
]
//Ici on ajoute la condition
Sql += " WHERE FONOM = '" + saisieFournisseur + "'"
//Ici on peut ajouter un tri
Sql += " ORDER BY FONOM"

//Exécution de la requête
SI Pas HExecuteRequeteSql(Rs,HRequeteDefaut,Sql) ALors
 Erreur(HErreurInfo())
 Retour
Fin

//On Vide la table par sécurité
TableSupprimeTout(REQ_Fourn)

//On rempli la table
ConstruitTableFichier(REQ_Fourn,Rs,taAvecIDAuto+taRemplirTable)

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=3848&post_id=16178