Avatar billede Newbee1 Novice
06. januar 2016 - 19:46 Der er 14 kommentarer og
1 løsning

Fiksere/låse form

Hej

Er det muligt at låse/fiksere en form i access.


Jeg har en form med flere subforms, den skal åbnes
på mange forskellige pc, pga opløsning ikke er ens, kommer der
mange "scrollbars" frem, på nogen pc'er.


Kan man låse den som en hjemmeside så man kun kan "scroll" op og ned?


Mvh

ony
Avatar billede fdata Forsker
07. januar 2016 - 13:10 #1
På formens egenskabsark (fanen Format) kan du angive hvilke rullepaneler, du vil se.
Avatar billede Newbee1 Novice
07. januar 2016 - 19:28 #2
Hej

Tak for dit svar.


Det jeg eftersøger er en måde at fastlåse en formular, så den
ser ens ud, lige meget hvad opløsning der bliver brugt.

Det vil sige at størrelsen ændre sig, i stedet for at komme
med rullepaneler.

Jeg synes formularen bliver rodet og uoverskuelig, når der kommer rullepaneler.

Hvis jeg vælger ikke at bruge rullepaneler, kommer
hele formularen ikke med.


Mvh

Tony
Avatar billede terry Ekspert
07. januar 2016 - 19:39 #3
Avatar billede fdata Forsker
08. januar 2016 - 11:24 #4
Acces har ikke nogen indbyggede funktioner, der kan hjælpe dig.

Jeg har rodet en del med netop dette problem; men ikke fundet en tilfredsstillende løsning. Specielt omkring subforms går en re-skalering af komponenter helt galt.

Den eneste metode er derfor tilsyneladende at oprette forms, så de passer til den laveste opløsning, basen skal bruges på (suk).
Avatar billede Newbee1 Novice
08. januar 2016 - 16:59 #5
Hej Tak for svar


Terry jeg  kan ikke få det til at virke.


Jeg laver et modul kalder det clFormWindowsbas.

Laver code ved åbning af form:

Public Sub AlignTops(ByRef frmA As Form, ByRef frmB As Form)
  Dim fwA As New clFormWindow, fwB As New clFormWindow
  fwA.hwnd = frmA.hwnd
  fwB.hwnd = frmB.hwnd
  If fwA.Top < fwB.Top Then
    fwB.Top = fwA.Top
  Else
    fwA.Top = fwB.Top
  End If
 
  Set fwA = Nothing
  Set fwB = Nothing
End Sub
Avatar billede terry Ekspert
08. januar 2016 - 17:55 #6
I,ll take a look tomorrow, busy right now...
Avatar billede terry Ekspert
09. januar 2016 - 11:38 #7
I have made a simple example which saves forms position in a table. It also places form in that position when form opens.

do you have an email address?
Avatar billede Newbee1 Novice
12. januar 2016 - 08:23 #8
Hi Terry

Sorry for my late answer.


tony.hansson&gmail.com
Avatar billede Newbee1 Novice
13. januar 2016 - 09:51 #9
Hi Terry


Tks. for your time.


If I make a big text field i your example, and move the DB
to another PC with lower resolution, it will not make the field smaller, but I get a scrol in bottom ?

When I close DB i get the message ?

Runtime error 2450
Access kan ikke find formularen "frmTest", der referees til.

BR

Tony
Avatar billede fdata Forsker
13. januar 2016 - 16:13 #10
Jeg blander mig lige igen.

Der er ingen indbygget skalering i Access.
Hvis du opretter et tekstfelt, der er 300 pixels bredt, er det 300 pixels bredt! Altid!

Hvis du forsøger at vise et bredt felt på en skærm, der ikke er bred nok, får du rullepaneler (hvilket vel også er meget rimeligt).

Så vidt jeg kan se af tråden, leger i med at placere en form i en anden form; men dette ændrer kun placeringen - ikke størrelsen.

Hvis du vil simulere en ændring af størrelsen, skal du "måle" skærmens bredde, beregne forholdet (det er måske 70% af den oprindelige form) og endelig skalere alle formens komponenter - en efter en - med 70% og flytte dem tilsvarende. Det er ikke for børn.
Avatar billede terry Ekspert
13. januar 2016 - 16:27 #11
Sorry I hadn't seen your comment before now ;-(

This is only a demo.

The error is because Access is closing the form before the code is finished running in the form. If you close form first then you dont get the error.
You will need to make some changes to stop Access closing before all forms are closed. When the form is closed the position is saved to table.

You need to look into the code in clFormWindow to see what is possible by using the code.

Obviously trying to get things working on different screen resolutions is a challenge. But I am sure you can use the code to get the screen resolution and adjust width and height if they are too large.
Avatar billede terry Ekspert
13. januar 2016 - 16:29 #12
You can also save form size into table and restore size when form is opened. That way a user can decide size and position of forms on screen.
Avatar billede terry Ekspert
13. januar 2016 - 16:40 #13
Avatar billede Newbee1 Novice
14. januar 2016 - 08:38 #14
Hej

Tak for indlæg.


Terry tak for dine svar, jeg vil prøve at bruge din ide, jeg kunne
i første omgang ikke forstå hvad du prøvede, men kan se at ved at ændre værdier i tabel, kan jeg ændre formularen.
Avatar billede terry Ekspert
14. januar 2016 - 10:09 #15
Hi and thanks for the points.
As fdata says, there isn't any built in way to do this in Access and doing it in code isn't easy (ikke for børn). But it is possible although it will take time to get a working solution.

The example I gave was made based on this link http://access.mvps.org/access/forms/frm0042.htm it uses the methods in this code to save the position of the form in a local table´. This is just an example.
An idea would to build on this and save the height and width of the form in a table which is local (specific for user). So each user could decide on the position and size of window.

In the link there are two simple examples on how to position forms, but it doesn't show on example on how to size a form. But you could change the code which saves position so it also saves size and also code which positions form to also set size when form is loaded.

That in my opinion isn't so difficult. But if you want to re-scale forms size then look at code in the other link I gave where there is an example if a windows API GetSystemMetrics. This API can be used for many things, for example getting width and height of screen. But your going to have to dig around yourself for information on how to use it.

JUST FELL OVER THIS
http://www.peterssoftware.com/ss.htm
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester