Access window size aanpassen

Status
Niet open voor verdere reacties.

Rap261

Gebruiker
Lid geworden
2 sep 2008
Berichten
273
Goede middag,


De formulieren in een db zijn qua afmeting 15"X9". Nu wil ik dat de window van het Access programma automatisch deze groote aanhoudt als men de db opent. De optie "Maximize" moet bij voorkeur ook uit staan of iig niet mogelijk zijn.

Ik heb verschillende topics gevonden maar veel heeft alleen betrekking op het sizen van de formulieren. Uiteindelijk toch een link gevonden
(http://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/c700c973-8ed5-4030-b429-8a0997bd7deb/)
voor het aanpassen van Access zelf maar met de code en het plaatsen ervan in een class module zie ik geen resultaat. Gek genoeg krijg ik geen foutmeldingen, de window size van Access is nog steeds MAX en de inhoud van de db is niet meer zichtbaar/oproepbaar.
Onderstaand de code:

Code:
Dim fw As clFormWindow
            
Set fw = New clFormWindow
fw.hWnd = Application.hWndAccessApp
' fw.Top = 0    
' fw.Left = 0   
fw.Height = 15   
fw.Width = 9    
Set fw = Nothing


Wie kan me helpen?
Bijgaand een ook voorbeeld van hoe het eruit moet komen te zien.

Voorbeeld.jpg
 
Bij mij doet-ie het anders prima. Heb je a) de code wel geïmporteerd in een Class module? En b) heb je die wel de naam <clFormWindow> gegeven?
 
Hi Michel,


Wat bedoel je precies met a?
Ik heb een Class module geselecteerd via de Create menu en daarin de code geplakt. Vervolgens de module clFormWindow genoemd (B) en de boel opgeslagen..
Bij mij is dan het resultaat: geen kleiner window, geen db zichtbaar maar ook geen foutmelding..
 
ik heb de code nu onder Class- Initialize geplaatst ipv General - (Declarations) met als resultaat nu wel weer de formulieren die zichtbaar zijn maar de window size wordt nog niet kleiner..
 
?? Het wordt onderhand tijd voor een voorbeeldje, want je raakt me kwijt...
 
Heb je het verhaal wel gelezen uit de linkjes? Het bestandje dat je op de pagina van The Access Web moet ophalen, moet je importeren, of Kopieeren/plakken. In het laatste geval moet je hem zelf plakken in een klassemodule. Zelf gebruik ik de sleur en pleur methode, da's wel zo snel. Die klassemodule moet je dus clFormWindow noemen. Verder kun je de code die je nu hebt staan in een gewone module zetten. En die code moet je aanroepen vanuit een automacro, of een startformulier. Lees het verhaal nog eens na, zou ik zeggen. De code, zoals ik al zei, doet het prima.
 
Ik dacht eerlijk gezegd dat het een voorbeeld progje was wat gedownl kon worden en dat de code onderaan dus voldoende was...

Maar goed, ik heb nu een klassemodule gemaakt, het bestandje erin gezet en de module clFormWindow genoemd.
Daarna een module gemaakt met daarin de code die ik in eerste instantie al had. Module heb ik AutoExec genoemd
Als laatste heb ik een macro gemaakt via "create" en als eigenschap gegeven "Runmacro" en dan de naam AutoExec.

Wellicht te simpel gedacht want het werkt nog steeds niet. Bijgaand het voorbeeld. kun je uitleggen wat ik dan nog fout doe?
 

Bijlagen

Je hebt een module gemaakt die zowiezo een foute naam heeft; AutoExec moet je echt alleen voor de naam van een macro bewaren. Die macro moet in jouw geval één opdracht bevatten: de naam van de uit te voeren procedure. De opdracht in de macro is dan ook niet RunMacro, maar ProcedureUitvoeren. En dan kies je de naam van de gemaakte procedure. Dat is dus, voor de zekerheid, zoiets:
Code:
Function Opstarten()
Dim fw As clFormWindow
            
    Set fw = New clFormWindow
    With fw
        .hWnd = Application.hWndAccessApp
        .Top = 50    ' would position window at top of screen
        .Left = 50   ' would position window at left of screen
        .Height = 1000   ' maybe
        .Width = 1500    ' maybe
    End With
    Set fw = Nothing
End Function
Ik roep dus in de macro de procedure Opstarten() aan. Die macro krijgt de naam AutoExec, en dan moet alles goed draaien.
 
als ik het goed begrijp:

Het gedeelte klassemodule is verder correct
In de "losse" module maak je een Function procedure (naam van de procedure is bv Opstarten). De module kan ik dan elke naam geven maar geen AutoExec?
Als laatste maak je een automacro (nog wel steeds via menu - create - macro neem ik aan) die vervolgens naar de module gaat en daar de procedure uitvoert die in de macro staat. Deze automarco kan wel AutoExec heten?

Indien correct dan snap ik nu op zich de route alleen als ik bij het maken van die automacro de actie "ProcedureUitvoeren" zoek kan ik die niet vinden. Ik heb de Engelse versie dus zoek dan naar benamingen als: Run, RunProcedure, Process, Execute, dat soort dingen.
Heet dit dan anders of zit ik in de verkeerde hoek te zoeken?
Wat een gezeur, de hele db was nog sneller in elkaar gezet dan dit kleien dingetje

Thanks Michel
 
Laatst bewerkt:
Deze macro moet AutoExec heten, want anders start hij niet bij het laden van de db. Ik heb de db er maar bijgedaan, want ik zou zo snel ook niet weten hoe het engelse commando is.
 

Bijlagen

Hi Michel,


De vertaling voor de actie is dus Runmacro. Dit had ik al wel geprobeerd alleen had ik Opstarten zonder () gebruikt. Aangepast en nu werkt ie idd.
Ben daarna nog wel een tijdje bezig geweest met het juiste formaat krijgen, in mijn geval fd.Height = 816, fd.Width = 1373.

Thanks voor je hulp, geduld en alvast een goed weekend!
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan