salut
comment fait on une indirection en access ?
merci
salut
comment fait on une indirection en access ?
merci
petite précision pour ceux qui ne savent pas forcément ce qu'est une indirection.
Il s'agit par ex de manipuler les propriétés d'un objet (un formulaire par ex), via une variable.
mavariable = LeFormulaire
je ferais
mavariable.recordsource = "Select...."
au lieu de:
LeFormulaire.recordsource = "Select...."
j'ai cherché dans FAQ et forum, rien trouvé.
Ca me surprend.
Et pourquoi veut tu faire ça
Si ton formulaire se nomme F1 tu peut apeller n'importe quel objet du formulaire F1 à partir d'un autre formulaire
Exemple :
Form_F1.maListe.rowSource="Select * From ...;"
Je ne te comprend pas bien.
c'est pas une réponse ca !!! lol
On fait ca dans le cas où on va parcourir une collection par ex.
Par ex, récupérer la liste des formulaires d'une appli via la table msysobjects.
donc pour éviter d'écrire x fois la même chose.
il y a plein de façons de faire je t'en expose une
supposons une table xx dans lesquelles j'ai
ordre typerequête sql
1 action update........
2 action insert...........
3 selection select.......
............
supposons maintenant qu'à l'aide d'un formulaire j'entre dans une autre table yy les ordres 231 et la clef de tri 1 2 3 si dans mon formulaire j'ai un bouton séquence
je lui associe le traitement suivant
ouvrir un recordset sur yy order by clef de tri
pour chaque enregistrement
je vais chercher dans xx le bon ordre
si typereqête=action
alors
runsql(sql)
sinon
openrecordset(sql)
nb j'ai fait cela une fois
me souvient plus pourquoi(alzheimer??)
à mon avis ce type d'organisation signe un pervers polymorphe caractérisé
oui ca c certain !!Envoyé par random
je vous explique
dans la boite il y a SAGE(autant de base que de sociétés qui compose le groupe)
j'ai des cnx ODBC sur chacune des bases.
Elles sont nommées
SAGE_NomSoc1
SAGE_NomSoc2
SAGE_NomSoc3
...
SAGE_NomSocX
Je fais des liaisons de tables en auto.
Je récupère la valeur de NomSocX,
et via le code, je veux pouvoir lier en fonction de cette valeur.
Une simple concaténation ne suffit pas.
Deuxième ex:
En rouge, ce que je voudrais faire.Dim reqSelFrm As String
Dim rstSelFrm As Recordset
Dim NomFrmTrt As String
reqSelFrm = "SELECT Name FROM MSysObjects WHERE Type = -32768"
Set rstSelFrm = db.OpenRecordset(reqSelFrm, dbOpenSnapshot)
rstSelFrm.MoveFirst
While Not rstSelFrm.EOF
NomFrmTrt = rstSelFrm!Name
NomFrnTrt.RecordSource = "Select ....."
rstSelFrm.MoveNext
Wend
rstSelFrm.Close: Set rstSelFrm = Nothing
désolé si c'est un peu fouilli.
Mais le terme d'indirection est quant à lui bien juste.
Pourtant il me semble l'avoir déjà fait il y a longtemps sous access.
Partager