Vraag : Alternatieve methode om vormen in een project van de Toegang van verwijzingen te voorzien?

Een paar jaar geleden deed ik een snel project van de Toegang 2003 dat een paar controles impliceerde van de 3de partijdouane treeview die op een verscheidenheid van vormen door het project werden gebruikt. Ik kwam uit een .NET milieu zodat begon ik wat op klasse-gebaseerde methodologie op het project van de Toegang toe te passen. het gebied

One ik experimenteerde waarmee voorzag vormen en controles door een structuur van de douaneklasse van verwijzingen. Ik verzamelde een reeks overheidsfuncties in een klassenmodule die een verwijzing naar een specifieke vorm of een controle terugkeerde. Wanneer ik een specifieke controle moest van verwijzingen voorzien concretiseerde ik een geval van de klasse, genoemd de aangewezen functie, en gebruikt de teruggekeerde verwijzing om tot de controle toegang te hebben UI.

This scheen om zonder enige problemen te werken maar was ik of benieuwd zijn de klassenstructuren vrij inefficiënt in Toegang?

ik houd van de flexibiliteit en de organisatie van het gebruiken van klassen als verwijzingsfabrieken voor vormen en controles, in tegenstelling tot de gemeenschappelijkere „klap“ aantekening, maar als het neer het project bij runtime vertraagt het dan de voordelen van flexibility.

Has ontkent gebruikte iedereen anders dit soort vorm en controle van verwijzingen voorziend in Toegang? Ik debatteer gebruikend dit op een nieuw project van de Toegang dat heel wat vormen en controls.
impliceert

Antwoord : Alternatieve methode om vormen in een project van de Toegang van verwijzingen te voorzien?

<>>

 Opnieuw, uw het gaan niet dat op de typische manier kunnen hier doen OOP.  U kunt niet een voorwerp van de basisklasse hebben, dan subklasse het en het wijzigen.  Access/VBA steunt niets van dat.

U kunt een textboxklasse tot stand brengen en gebeurtenissen met het dalen en nieuwe eigenschappen en methodes introduceren, maar het zal het zelfde voor elke controle in app zijn tenzij u afzonderlijke klassen hebt.

<>>

  Zoals ik zei, schijnt het ik de visie niet heb aangezien ik nog werkelijk begrijp wat niet het uw daarna het gaan van is. Dit:

Privé SubForm_Load ()

GetForm (FORM_MAIN). Titel = „de titelkoord van de Test“

Schemerige TempControl als Controle
Vastgestelde TempControl = GetControl (FORM_MAIN, FORM_MAIN_TEXBOX_1)

Met TempControl
   .SetFocus
   . Tekst = „Test“
Eind met

Vastgestelde TempControl = niets

Sub van het eind

Enkel geen aan houdt me steek in Toegang.  Het zou enkel eenvoudig en duidelijker zijn te doen:

Privé SubForm_Load ()

Me.Caption = „de titelkoord van de Test“

Me.Text0.SetFocus
Me.Text0.Text = „Test“

Sub van het eind

en zonder al extra overheadkosten.  Zo ik geen voordeel zie aan enkel het gebruiken van GetForm (), GetControl () enz. om een verwijzing naar iets te krijgen.  Misschien is wat mist dat normaal, een ontwikkelaar een controle iets in die aard zal noemen:

txtBirthDate
cbxHIPPAOnFile
lstSelectPatient

voor het noemen van controles en anderen heb bezwaar (gebruikend een prefix), wat gemakkelijker is om te werken met en werkelijk hulp met de wijziging en onderhoudskarweien.

En zover als de routines die u hebt, geen reden aan lijn door alle vormen of controles als dat.  enkel:

Overheidsfunctie GetForm (ByVal sFormName) als Vorm

   Op Fout GoTo GetForm_Error

   Vastgestelde GetForm = Vormen (strFormName)

GetForm_Exit:
  De Functie van de uitgang

GetForm_Error:
  Vastgestelde GetForm = niets
  Hervat GetForm_Exit

Beëindig Functie

  Aangezien u kunt zien, heeft Access/VBA reeds een vormeninzameling en u kunt de syntaxis gebruiken:

 Vormen (strFormName)

 om een verwijzing te krijgen naar het gebruiken van een koordvariabele die de naam bevat.  En het heeft inzamelingen voor eveneens enkel over elk ander voorwerp.

 Ongeveer de enige plaats waar het heeft vereist om te doen wat uw het proberen te doen is wanneer u veelvoudige instanties van een vorm moet hebben.  Dat moet typisch met iets als een GetForm () worden behandeld, die een inzameling van geopende vormen zou handhaven zoals Access/VBA niet zal dat op het is behandelen.  Maar buiten dat, is er niets anders ik aan waar kan denken het de overheadkosten waard is.

JimD.

Andere oplossingen  
 
programming4us programming4us