Anmeldelse af Microsoft Access XP (2002) af Joakim Dalby Det er altid en stor
fornøjelse at få en ny Access version i hænderne, og i den aktuelle Office
XP findes Access XP (eller Access 2002) med versionsnummer 10, selvom historien
kun omfatter Access 1.0 (version 1), Access 1.1, Access 2.0 (version 2), Access
95 (version 7 så nummer svarer til Word og Excel versioner), Access 97 (version
8), Access 2000 (version 9), men hvorfor gå glip af en rund fødselsdag med
version 10. Access har altid fulgt de små
skridts udvikling med hensyn til nye faciliteter til forms og
programmeringssproget. Fra version 2000 blev der indført en egentlig
front-end til SQL Server, og i Access XP får man en mini SQL Server 2000
database med, samt at Access Basic endelig er blevet ren VBA; så er Access XP
på fuld højde med andre professionelle database-applikationsværktøjer.
Jeg ved godt, at mange VB, C++ og Java programmører kalder Access for et
legetøjsprogram, men den eneste begrundelse her for er faktisk kun, at en
Access applikation med skærmbilleder, rapporter og masser af programmering
fortsat ikke kan blive til en exe-fil. Men man har jo lov at håbe på exe-fil,
når Access på et tidspunkt lægges ind under .NET strategien hos Microsoft,
især nu hvor integrationen med SQL Serveren faktisk er næsten fuldendt. SQL-server fordele – ægte Client-Server database
solution Det er åbentlyst, at når
databehandling og genfinding af data sker på en central server der er
toptunet til disse gøremål, så opnås der store performanceforbedringer. Access
Data Project (ADP) kom i Access 2000 sammen med ADO og fungerer sammen med
SQL Server 2000 der følger med Access XP som miniudgave. SQL Server 2000
viser tabeldesign a la Access med felt-egenskaberne forneden inkl. feltbeskrivelse som ses i
statuslinien. Access XP har som følge heraf valgt at medtage muligheden for
Input Mask, Format og Lookup til hjælp ved indtastning og visningen af data
samt Validation Text, når en sql-server constraint brydes på enten et unikt
felt eller en feltvalidering. SQL Server 2000 har også arvet Access 2.0’s
kaskadevis opdatering/sletning, så en Access bruger vil næsten ikke opleve
nogen forskelle ved at droppe jet-motoren til fordel for sql2000-motoren, og
en senere opgradering til en rigtig bagvedliggende server database vil være
piece of cake, mens Access XP bibeholdes som front-end og applikationsudviklingsværktøj. Det tog Access flere
versioner før relationsvinduet kunne udskrives, og desværre er faciliteten i
SQL Serveren ikke særlig fleksibel, når et ER-diagram enten skal tilpasses
en A4-side eller udskrives over flere sider, men mon ikke Microsoft kunne
finde på noget smart, gerne kombineret med klynger af entiteter/tabeller m.v. Views og In-Line Function I Database-vinduet for et
Access Data Project er Stored procedures og Views slået sammen til Queries
sammen med den nye User Defined Functions, så det er de små ikoner som
fortæller, hvad der er hvad, hvis man ikke selv angiver prefixes. En herlig nyhed er, at laves
et View i Access, så kan der nu tilføjes sorteringsorden, selvom order by jo
er bandlyst i views, fordi Access på sql-serveren selv laver en top
forespørgsel, hvor sortering er lovligt! Som følge af User Defined Functions har Access
projektet fået tilføjet In-Line Function som kaldes »view med parameter og
order by«, og designes i det kendte forespørgselsvindue, mens tekstbaseret
editor også kan fås. Det er i øvrigt pussigt, at det ikke er lykkedes
Microsoft at få udviklet det grafiske forespørgselsvindue til at håndtere en
union-forespørgsel. Parameterforespørgsel Angivelse af en parameter i
en forespørgsel i et projekt kan ske på normal Access vis: [Afdeling], idet
den automatisk laves om til sql-server: =@Afdeling med rigtig datatype. Parameter
benyttes til Stored procedures og til den nye In-Line Function. Normalt
vil Access bede om en værdi til parameteren når enten stored procedure eller
in-line function bliver udført, men er forespørgslen knyttet til eksempelvis
en listboks i en form, og en drop-down kombiboks i formen har samme navn som
parameteren, så tages værdien automatisk der fra, så kombiboksen kan bestemme
listboksens indhold, hvis der lige angives en programlinie under kombiboksens
AfterUpdate event med en requery på listboksen. Det kan næsten ikke gøres
smartere at arbejde med indholdsvarierede listbokse, og det er bl.a. her jeg
synes Access adskiller fra mange af de andre udviklingsværktøjer, at netop
kombi- og især listboksenes indhold direkte kan hentes fra en forespørgsel
oven i købet med en parameter fremfor at foretage additems i en løkke. Nu mangler
vi blot at få treeview som indbygget Access komponent, så den også kan
referere til en forespørgsel. Pages og XML I Access 2000 var en
af de store nyheder html-dataadgangssider til generering af hjemmesider til opdatering
af databasen via formlignende skærmbilleder. Denne facilitet
er blevet udvidet kraftigt med mulighed for programmering og en række andre
smarte ting. Desværre er der langt igen for at få pages til at ligne de mere
avancerede forms, men Access er da godt på vej, og understøttelsen af XML
har også en stor fremtid for sig både som importering af xml data og som
eksportering af data til xml. Dog eksporteres et tomt (null) felt ikke som et
tomt tag, eksempelvis således: <farvekode></farvekode>,
og en importering kræver at en xml linie indeholder alle tags, for kommer der
udfyldte tags længere nede i xml filen, så har Access ikke fanget disse tags
og får dem ikke importeret til et felt i en tabel. Report Det er ikke de store ting
der er sket i rapportdesign i Access siden version 1.0, men denne gang nærmer
report sig form ved bl.a. at have fået tilføjet egenskaberne Auto Resize der
kan sættes til No så man selv kan bestemme preview vinduets størrelse og via
AutoCenter få det automatisk centreret, samt Border Style så vinduets
størrelse ikke kan ændres af brugeren plus at vinduet kan gøres modal og
sågar popup. Endvidere kan man få preview at se i 500% og 1000% hvis ens
langsynethed driller foran skærmen. Report og form har også
fået egenskaben Moveable der ved No angiver, at brugeren ikke må kunne flytte
vinduet på skærmen. Så i næste Access version kan man jo håbe på
muligheden for at lave Drag&Drop knapper, så er det hele snart flytbart. Og hurra,
DoCmd.OpenReport har fået OpenArgs tilføjet, så en knap kan sende en ekstra
oplysning til rapportens programdel. Det er i øvrigt herligt, at
man kan programmere alt muligt bag en Access rapport og hente værdier fra
forms og arrays m.v. Her synes jeg igen, at Access viser store muligheder i
forhold til andre rapport-værktøjer. Jeg vil lige nævne en
ofte overset facilitet fra Access 2000, nemlig at en rapport i preview uanset
grafik og layout kan gemmes i en snapshot fil, der kan mailes til en kollega
som ikke har Access men som via et gratis Snapshot Viewer program fra Microsoft
kan se og udskrive rapporten. Det er uundværligt nu hvor emails har overtaget
fax. Form Frem til Access 2000 blev en
subform vist som en hvid firkant, og et dobbeltklik her på åbnede den
underliggende form. I 2000 blev så subformens indhold direkte vist i
designet af mainformen, men til gengæld forsvandt dobbeltklikket. I
Access XP kan man igen få subformen frem ved et højreklik/menuvalg, og det
tror jeg mange formdesignere bliver glade for. Form har fået en række
nyttige udvidelser så som, at antallet af indlejrede subforms er steget fra
tre til syv, at man kan fortryde/undo flere trin bagud, og at der er kommet
nye genvejstaster. Access XP form har
endvidere fået fuld integration af Pivot, så ikke mere Excel, når man ønsker
fleksible analysemuligheder på sine data, og det tror jeg vil sætte endnu
mere fokus på Pivot. Access normale krydstabulering lader sig nemlig ikke
gøre på en sql-server database, da Access har haft sin helt egen
sql-kommando, så Pivot må nok regnes for erstatningen. Tillykke med Access 10.0 Alt i alt synes jeg
godt man kan fejre Access version 10.0 med stor lagkage for den indeholder
mange store og mindre forbedringer. En meget nyttig forbedring
her til sidst er, at ved ændring af et feltnavn i en tabel, vil Access XP
selv foretage ændringen i gemte forespørgsler, forms og rapporter, tak for
det! Figur 1. View
er la Access forespørgsel hvor felter og sort order angives på normalvis,
mens sql-sætningen automatisk bliver opbygget og lagret på serveren. Figur 2. En Pivot i
Access hvor der ses nærmere på salgsafdelingens kursusudgifter og specifik på
kurserne i år 1996. Figur 3. Når
der er relationer mellem tabellerne, får man gratis drill-down muligheder i
Access selvom databasen fysisk findes på en SQL2000-server. Dato tip Egenskaber til feltet
Leveringsdato Format: Short
Date eller dd-mm-yyyy Inputmask: 00-00-0000;0;# eller i et bestemt år:
00-00-"2009";0;# Validation
rule: Is Null Or [Leveringsdato] Between Date() And
DateAdd("d";364;Date()) Validation text: Datoen kan ikke være før i dag, og kan ikke være senere
end 364 dage frem. Kan også angive en bestemt
startdato Between #01-01-2013#. Valideringsregel
der sikrer, at Fødselsdato ikke indtastes meget forkert: Is Null Or [Fødselsdato] Between DateAdd("yyyy";-120;Date())
And Date() Private Sub Form_BeforeUpdate(Cancel As Integer) If Not IsNull(Me![
Fødselsdato]) And (Me![ Fødselsdato] <
DateAdd("yyyy", -120, Date) Or Me![ Fødselsdato] > Date) Then MsgBox " Fødselsdato skal være
inden for 120 år og i dag.", vbOKOnly, "Fejl" Cancel = True End If End
Sub '
Hvis året i Leveringsdato automatisk skal været aktuelle år. Private
Sub Leveringsdato_Enter() If IsNull(Me![Leveringsdato]) Then Me![Leveringsdato].InputMask =
"00-00-""" + Right(Str(Year(Date)), 4) +
""";0;#" Else Me![Leveringsdato].InputMask =
"00-00-0000;0;#" End If End
Sub '
Hvis klik i Leveringsdato automatisk skal placere cursoren yderst til '
venstre klar til dato indtastning, indsættes dette kode ved egenskab VedKlik Private Sub
Leveringsdato_Click() If IsNull(Me![Leveringsdato]) Then DoCmd.GoToControl
"Leveringsdato" SendKeys "{F2}", True SendKeys "{Home}", True End If End Sub ' Eller som en generel funktion der kaldes fra feltet i
formen VedKlik: '
=DatoClick([Leveringsdato]) Public
Function DatoClick(feltnavn As Control) On Error Resume Next If IsNull(feltnavn) Then feltnavn.SetFocus SendKeys "{F2}", True SendKeys "{Home}", True End If On Error GoTo 0 End
Function DLookup med en dato som kriterie Der ønskes i en
rapportudskrift vist en bemærkning fra en KUNDE_ORDRE tabel på en givet
Ordredato. I en søgekriterie form dialogboks kaldet KundeUdskrift indsættes
en tekstboks Søgdato og i rapporten indsættes en tekstboks med følgende Kilde
formel der anvender DLookup funktionen til at finde den rette bemærkning, og
hvor dato skal være formateret på en særlig måde: I en Access database dansk
eller engelsk version: =DLookUp("Bemærkning";"KUNDE_ORDRE"; "[OrdreDato]=#"
& Format([Forms]![KundeUdskrift]![SøgDato];"mm/dd/yyyy") &
"#") I
et Access projekt mod en SQL Server database, d.v.s. '
fremfor #: =DLookUp("Bemærkning";"KUNDE_ORDRE"; "[OrdreDato]='"
& Format([Forms]![KundeUdskrift]![SøgDato];"mm/dd/yyyy") &
"'") Et
andet eksempel hvor ! refererer til felt i form/rapport f.eks. ![Kundenummer]: ="Batch No: " &
DLookUp("[Certifikatnummer]";"[KONSTANTER]") &
"-" & DLookUp("[Batchnummer]";"[BATCHNUMMER]";"[Kundenummer]=![Kundenummer] AND [Sortiment]=![Sortiment] AND [FraDato]<=#" & Format(Forms![Kriterier]!FraDato;"mm/dd/yyyy")
& "# AND [TilDato]>=#" &
Format(Forms![Kriterier]!FraDato;"mm/dd/yyyy") & "#") Format er god i beregningsfelt i en rapport Format
"Standard" viser 2 decimaler, ønskes 0 decimal: =Format(![felt],
"#,##0") %
procent eksempler: =Format(IIf(![Vægt]=0;0;![VægtS]/![Vægt]);"Percent")
viser 2 decimaler =Format(IIf(![Vægt]=0;0;![VægtS]/![Vægt]); "#,##0%;;0%;") viser 0 decimal =Format(IIf(![Vægt]=0;0;![VægtS]/![Vægt]); "#,##0.0000%;;0%;") 4 decimaler Tekst
og beregninger i en text box i en rapport uden decimal for procentsatsen: ="Heraf
SBP compliant: " & Format(Nz([SumVægtTSBP]);"#.##0") &
" tons ~ " &
Format(IIf(Nz([SumVægtT])<>0;Nz([SumVægtTSBP])/[SumVægtT];0);"0%;;0%") SQL til en fil Når
der er behov for at skrive en tekst f.eks. en sql sætning til en txt fil Private
Sub DeleteFile(Filename As
String) If Dir(Filename) <> "" Then Kill Filename End If End Sub Private Sub
WriteToFile(tekst As String) Dim Filnavn As String Dim FileId As Integer Filnavn = "c:\tekst.txt" DeleteFile Filnavn FileId = FreeFile Open Filnavn For Append As #FileId Print #FileId, tekst Close #FileId Reset End
Sub Ændre underdel i en multi-form Når
der er behov for ændre sub underdelen i en multi-form til en anden sub form Me![Sub].SourceObject
= "Subform" Flere Access versioner Som nævnt var Access XP
(også kaldet 2002) version 10. Næste versioner fik navnene: Access 2003 = version
11, Access 2007 = version 12, Access 2010 = version 14, da Microsoft er bange
for versionsnummer 13, Access 2013 = version 15, Access 2016 = version 16. Access bagud kompatibel Access 97 og 2000 kan åbne
alle tidligere versioner 95, 2.0, 1,1, 1.0 mdb fil. Access 2002 (XP) og 2003 kan
åbne versioner 2000, 97 og 95 mdb fil. Access 2007 og 2010 kan åbne
versioner 2003, 2002, 2000, 97 mdb fil. Der blev tilføjet en filtype accdb
som en slags ny version af mdb filen. Access 2013 kan åbne
versioner 2010, 2007, 2003, 2002, 2000 men ikke 97 fordi den er baseret på
JET 3.5 motor, og version 2000 og frem er JET 4.0. Desværre understøtter Access
2013 ikke ADP (Access Data Project fra Access 2000-2010) så man skal igen anvende
sammenkæde (link or attach table) via ODBC (Open Database Connectivity) som
var med i Access 1.0 mod SQL Server 1.1 fra efteråret 1992 (jævnfør User’s
Guide side 660) og bruge SQL pass-through query og ADO recordset (ActiveX
Data Objects). En adp fil kan ikke en gang konverteres i Access 2013 så forms,
rapporter og programmering i moduler kan gemmes i en accdb fil. Det lader
sig kun gøre i Access 2007/2010. I Access 2000/2002/2003 kan man oprette en
ny mdb fil og importere fra adp filen, og så konvertere mdb til accdb i
Access 2013. Mere herom i et andet indlæg. »Microsoft ended support for Windows
XP and Office 2003/2002 on April 8, 2014« ja og desværre dropper man den geniale
ADP forbindelse til SQL Server med alle de fordele den gav for lynhurtig rapid
application development (RAD). Firma Joakim Dalby har udarbejdet en model der
giver en række ADP funktioner i en Access 2013 - 2016 accdb fil, læs artiklen
her ADP+. Konvertere mdb til accdb i Access 2007/2010/2013/2016 Access 97 mdb fil kan
konverteres til accdb fil i Access 2007 og 2010. Access 2000/2002/2003 mdb
fil konverteres eksempelvis i Access 2013 ved at åbne for mdb filen og i
Filer menuen vælge {Gem som} og klik på "accdb filtypen", klik på "Gem
som" og angiv mappe og filnavn. Access 2013 programmering referencer Visual
Basic For Applications Microsoft
Access 15.0 Object Library Microsoft
Excel 15.0 Object Library Microsoft Office 15.0 Access
database engine Object Library (der erstatter DAO 3.6 Data Access Object i
tidligere Access versioner bl.a. til datatyper Database og Recordset så
programmeringen skal ikke ændres). Evt.
Microsoft Visual Basic for Applications Extensibility 5.3 og OLE Automation. I Access 2016 er
versionsnummeret 16.0. Access fra version 2007 tip Ønsker
man den nye sortering filter pil (sort filter arrow as column heading) i
dataark fjernet f.eks. i en sub form, så sættes formens
egenskab Genvejsmenu til Nej (ShortcutMenu til No). Evt. også Tillad Filter/Allow
Filters til No. Skift hurtig mellem design
og formvisning via knappen i båndet, sæt formegenskaben Tillad Layoutvisning til
Nej. Sæt også Allow Design Changes til Design View Only. I design af en rapport slås
RapportHoved/Fod og SideHoved/Fod til via højreklik i designet og vælge i
menuen. I en underdel (sub rapport)
er det muligt at anvende SideHoved hvilket er praktisk ved
kolonneoverskrifter når underdelen har mange rækker der strækker sig over
flere sider. Husk i hoveddelen (super rapport) at tilrette underdelens
egenskab Vis Sidehoved og Sidefod til Ja. Problem med SQL tabel Når en SQL server tabel
åbnes via Access, kan man for talfelter fås denne fejlmelding: The setting
for the decimalplaces property must be from 0 through 15. or 255 for Auto
(Default). I SQL Server Enterprise
Manager åbnes SQL Query Analyser, og under menuen Tools vælges Object Browser
og Show. Herefter findes tabellen i vinduet til venstre side, og under
tabellen åbnes Columns, hvor der højresklikkes på feltet og vælges Extended
properties. I vinduet sættes egenskaben MS_DecimalPlaces til 255. Windows 7 skrifttype problem Ved de nye bredskærme f.eks.
1680 x 1050 eller 1920 x 1080 har Windows 7 valgt at forstørre nogle af de
gamle skrifttyper til 125% mod standard 100%. Det gælder bl.a. skrifttypen MS
Sans Serif og anvendes den på felter og knapper i Access form, så vil teksten
ikke mere kunne være inden for feltet eller knappens størrelse når teksten
bliver forstørret til 125%. Derfor skal der anvendes 100%, hvilket gøres på
følgende måde. I Start vælges Kør (Run) og angives regedit d.v.s. der åbnes
for Windows Registreringsdatabase. Her søges der efter: "MS Sans Serif
8,10,12,14,18,24" og der højreklikkes og vælges Rediger hvorefter SSERIFF.FON ændres til SSERIFE.FON (d.v.s. F ændres til E).
Tilsvarende for "MS Serif 8,10,12,14,18,24" ændres til SERIFE.FON og "Courier 10,12,15"
ændres til COURE.FON. Luk vinduet
og genstart computeren og tekster og knapper i Access ser igen pænt ud og
vises inden for knappens størrelse. Der kan også være et problem
hvis standard Smaller (100%) er ændret for DPI (dots per inch (DPI)), læs
mere her: http://windows.microsoft.com/en-US/windows7/Make-the-text-on-your-screen-larger-or-smaller Husk at anvende Clear Type: http://windows.microsoft.com/en-US/windows7/Make-text-easier-to-read-using-ClearType Kontrolpanel, klik Skærm, vælg Mindre - 100 %
(standard) Når Windows 7 menu tekst
vises med småt tekst f.eks. i Notesblok eller på faner i Explorer eller Google Chrome, så
gør følgende: Gå til Kontrol panel og Personlige indstillinger, klik nederst
på Vinduesfarve, klik på Avancerede indstillinger for udseende. I den
fremkomne dialogboks: Under Element vælg Menu,
skrifttypen er Segoe UI og nederst Størrelse sættes til 9 mens øverste
størrelse er 18. Under Element vælg Aktiv
titellinje, skrifttypen er Segoe UI og nederst Størrelse sættes til 9 mens
øverste størrelse er 18. Under Element vælg
Ikke-aktiv titellinje, skrifttypen er Segoe UI og nederst Størrelse sættes
til 9 mens øverste størrelse er 18. Under Element vælg
Palettitel, skrifttypen er Segoe UI og nederst Størrelse sættes til 9 mens
øverste størrelse er 17. Under Element vælg
Værktøjstip, skrifttypen er Segoe UI og nederst Størrelse sættes til 9.
Når der indføres
BeforeUpdate Cancel = True på et felt i en form, og feltet samtidig er et
obligatorisk/tvunget udfyldt felt i tabellen, så giver Access en ekstra fejlbesked,
når man indsætter en ny række i formen og angiver forkert værdi i feltet, så
Cancel sættes til True og feltet ikke kan forlades. "The value in the field or record violates the validation rule for the
record or field." For at undgå den ekstra fejlbesked
fra Acccess skal der kontrolleres for at den forekommer i formens error
metode, og der skal angives at man blot skal fortsætte: Private Sub
Form_Error(DataErr As Integer, Response As Integer) If DataErr = 2116 Then Response = acDataErrContinue ' Else ' MsgBox
DataErr & " " & Response End If End Sub Private Sub
Antal_BeforeUpdate(Cancel As Integer) If Me![Antal] >= 10 Then If MsgBox("Kan indtastet antal
godkendes?", vbQuestion + vbYesNo +
vbDefaultButton2, "Godkendelse af antal") =
vbNo Then Cancel = True Else Cancel = False End If Else Cancel = False End If End Sub Postvælger i dataark (record selector in data view) ,
den sorte pil Dataark enten til en tabel
eller indbygget som en subform i et multi-form skærmbillede har før Access
2007 vist en sort pil ud for den post eller række som cursoren står ved, hvilket
er praktisk ved to eller flere dataark som subforms så brugeren kan se via
den sorte pil. hvilken række man er ved at knytte data til i det andet
dataark, eksempelvis i en tidligere Access version: Men fra Access 2007 er den
sorte pil erstattet af en gul markering, og desværre forsvinder den gule
markering, når dataarket ikke har fokus. Når et dataark kun har en kolonne,
som midten i skærmbilledet, så er der ingen markering til brugeren om hvilken
række cursoren stod i, når der skal indtastes i højre dataark. Det kan løses
ved at indsætte en post-farve via lidt programmering: Gid den sorte pil kunne til/fra
vælges i en indstilling, når man har haft den siden Access 1.0 i 1993, og den
har en praktisk betydning for brugeren, så han ved, hvilken række / post
cursoren står i og som andre objekter refererer til :) Farveværdi fra design til programmering Når design af en
baggrundsfarve viser #00366C man den oversættes til en værdi med: MsgBox
RGB(&H00, &H36, &H6C) der kan bruges i programmeringen til et
felt i form eller rapport: Me![Navn].BackColor = 7091712 Subform og subreport uden rækker I en multiform mainform ønskes
en textbox der viser antal rækker fra en subform textbox =Count(*) med navn
AntalRækker, men når subform ingen rækker har, så viser textboxen i
mainformen #Error eller #Fejl. Det kan undgås med en IIf og IsError
true/false funktion i textboxen i mainformen: =IIf(IsError([<subform>].Form![AntalRækker]);0;[<subform>].Form![AntalRækker]) I dansk version af Access
skal der skrives Formular selvom det bagefter vises som Form: =IIf(IsError([<subform>].Formular![AntalRækker]);0;[<subform>].Formular![AntalRækker]) I subform er indsat en
textbox i Form bund med formlen: =Count(*) eller =Antal(*) En alternativ metode er at
undersøge antallet af rækker med Recordset.RecordCount: =IIf([<subform>].Form.Recordset.RecordCount>0;[<subform>].Form![AntalRækker];0) En anden metode er at
undlade textbox AntalRækker i subformen og i stedet i programmeringen
tildele en værdi til textboxen AntalRækker i mainformen, hvilket også giver
en hurtigere opdatering og derved performance. Me![AntalRækker]
= Me![<subform>].Form.Recordset.RecordCount Ovenstående skal indsættes i
Form_Load, Insert og Delete og andre steder som måtte opdatere antallet af
viste rækker. I en multirapport undersøges
om en subreport har rækker med brug af kommando: HasData = 0 der betyder
har ingen data, -1 betyder har data, eksempelvis om en tom subreport skal
skjules: Private
Sub Report_Activate() If Me![<subreport>].Report.HasData =
0 Then Me![<subreport>].Visible = False End If End
Sub Subform opdatering Brug af Me.Refresh eller Me.Requery
til opdatering af subformen betyder, at der springes til første række i
subformen, hvilket er upraktisk når brugerne indtaster i sidste * række. I
den situation kan man i stedet få mainformen til at udføre requery og så
undgås det i subformen at springe til første række. I mainformen indsættes
følgende: Public
Sub Form_Subform_Requery() Me![<subform>].Requery End
Sub I subformen hvor
opdateringen ønskes indsættes følgende, hvor der kaldes sub fra mainformen
ved brug af Parent: DoCmd.RunCommand
acCmdSaveRecord Parent.Form_Subform_Requery PNG som icon billede på knap med gennemsigtig baggrund Filtyperne BMP og JPG har
ikke mulighed for gennemsigtig baggrundsfarve som ICO har det, men PNG har
det også og kan sagtens bruges på en knap i en Access form sammen med tekst
og billedet ændrer ikke størrelse som ICO fil gør det. Gennemsigtig baggrundsfarve
er praktisk når der er valgt Windows tema og musen sættes på knappen og
baggrundsfarven ændrer sig. |