Avatar billede martens Guru
29. september 1999 - 20:26 Der er 10 kommentarer og
1 løsning

VBA-kode til åbning af form i designvisning

Jeg mangler noget kode, der kan åbne en formular i designvisning, flytte et objekt på formularen nogle få millimeter, for derefter at lukke/gemme formularen.
Årsagen er at en af mine databaser laver en fejl ved komprimering.
Når jeg åbner formularen i designvisning flytter objektet nogle få millimeter og gemmer det virker alt som det skal .... Hjælp
MVH  Martens
Avatar billede ziber Nybegynder
30. september 1999 - 08:25 #1
access 97
Avatar billede ziber Nybegynder
30. september 1999 - 08:42 #2
Indsæt følgende kode:

DoCmd.DoMenuItem acFormBar, 2, 0, , acMenuVer70

Åbner formularen i design visning
Avatar billede ziber Nybegynder
30. september 1999 - 08:52 #3
Dette skulle også virke ved flytning

Me.DitObjekt.Left = 5000 'Her bliver den flyttet 5 cm fra toppen
Me.DitObjekt.Top = 1000  'Her bliver den flyttet 10 cm fra venstre
Avatar billede snowwhite Nybegynder
30. september 1999 - 13:53 #4
eller

DoCmd.OpenForm "frmKalender", acDesign

Avatar billede martens Guru
30. september 1999 - 20:23 #5
Okay det med at åbne formen er INTET problem, men at få sat fokus på eksempelvis en tekstboks efter åbning og derefter flytte denne 1 mm mofd højre og 1 mm ned, det kan jeg ikke få til at virke efter hensigten.
Er det endnu en gang problematikken omkring !(BANG) kontra .(DOT), der her spiller ind ??
Håber på endnu et godt bud på en løsningsmodel..
mvh

Martens
Avatar billede ziber Nybegynder
04. oktober 1999 - 07:38 #6
Du skal bare aflæse textboxens placering på siden, ved at bruge dens navn som henvisning. Derefter kan du vel addere med 1 mm. Prøver lige selv først.
Avatar billede ziber Nybegynder
12. oktober 1999 - 10:30 #7
Følgende kode skifter til Designvisning og flytter txtbox "Flyt"

'Desingvisning og aflæser position
DoCmd DoMenuItem A_FORMBAR, 2, 0, , A_MENU_VER20
TopPos = Me!Flyt.Top
LeftPos = Me!Flyt.Left

'Beregner ny position - her kan su sætte flytningen ind.
Ntoppos = TopPos * 2
Nleftpos = LeftPos * 2

'Her flyttes txtboxen til ny position
Me!Flyt.Top = Ntoppos
Me!Flyt.Left = Ntoppos


BEMÆRK: positionen af txtboxen beregnes i twips, 567 twips = 1 cm.

Ovenstående kode er lavet til Access 2.0 - for at den skal virke, skal du bare tilpasse koderne i designvisning linien til access 97.

Avatar billede martens Guru
17. oktober 1999 - 19:31 #8
tester det lige....
mvh martens
Avatar billede lkp Nybegynder
01. marts 2000 - 20:30 #9
Hej Martens

Da jeg kan se at spørgsmålet stadig er åbent, har jeg lige et løsningsforslag til dig.

--- Start ---

Function MoveElement(strForm, strElement As String, intTwips)

Dim x, y As Integer

DoCmd.OpenForm strForm, acDesign

x = Forms(strForm)(strElement).Left
y = Forms(strForm)(strElement).Top

Forms(strForm)(strElement).Left = x + intTwips
Forms(strForm)(strElement).Top = y + intTwips

End Function

--- Stop ---

Funktionen tager formular- og elementnavnet, samt antal "twips" du flytte elementet som parametre (567 twips = 1 cm).

Håber at du kan bruge svaret.

Med venlig hilsen

LKP
Avatar billede martens Guru
07. juli 2000 - 01:20 #10
Checker lige

mvh martens
Avatar billede martens Guru
08. juni 2001 - 23:51 #11
lukker
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