Avatar billede per2edb Ekspert
05. januar 2021 - 09:25 Der er 14 kommentarer og
2 løsninger

Find Standardværdien fra en tabel

Kan i ved VBA koder hjælpe med at finde hvad standard værdien i en tabel er sat til
Avatar billede Gustav Ekspert
05. januar 2021 - 09:49 #2
Denne virker her:

Public Sub DefaultValues(ByVal TableName As String)

    Dim Database    As DAO.Database
    Dim Table      As DAO.TableDef
    Dim Field      As DAO.Field
   
    Set Database = CurrentDb
    Set Table = Database.TableDefs(TableName)
   
    For Each Field In Table.Fields
        Debug.Print Field.Name, Field.DefaultValue
    Next
   
End Sub
Avatar billede per2edb Ekspert
05. januar 2021 - 10:22 #3
Jeg har måske ikke været klar nok.
Det jeg søger er den satte standardværdi af F.Eks MomsPct i tabellen Salg
Avatar billede terry Ekspert
05. januar 2021 - 10:35 #4
isnt that what you have been given the answer for?

CurrentDb.TableDefs({table name}).Fields({field name}).DefaultValue
Avatar billede per2edb Ekspert
05. januar 2021 - 15:03 #5
Der opstår en fejl når 2 eller flere redigeres samtidigt efter hinanden. F.Eks:

CurrentDb.TableDefs({table name1}).Fields({field name1}).DefaultValue
CurrentDb.TableDefs({table name2}).Fields({field name2}).DefaultValue

Fejlmeddelse:
Run-time error 3422
En anden bruger har åbnet tabellen
Avatar billede Gustav Ekspert
05. januar 2021 - 15:27 #6
Så er der noget andet - fx en formular, rapport eller forespørgsel - der har tabellen åben.
Avatar billede terry Ekspert
05. januar 2021 - 16:00 #7
Can you show the exact code you are using?

I have  no problem with this code, at the same time having a form and a report open which use these tables

Debug.Print CurrentDb.TableDefs("tbl1").Fields("fld1").DefaultValue
Debug.Print CurrentDb.TableDefs("tbl2").Fields("fld1").DefaultValue
Avatar billede per2edb Ekspert
05. januar 2021 - 17:31 #8
Hej
Her er mine koder:

CurrentDb.TableDefs("Moms_Afgifter").Fields("Afgift_Pct").DefaultValue = Me.Moms_Pct
     
CurrentDb.TableDefs("Tilbud").Fields("MomsPct").DefaultValue = Me.Moms_Pct
Avatar billede Gustav Ekspert
05. januar 2021 - 19:24 #9
Det virker fint, hvis værdien er fx "25.00".
Fejlen skyldes som nævnt, at du - eller "noget" - har tabellen åben.
Avatar billede per2edb Ekspert
05. januar 2021 - 20:46 #10
Der er ikke andre brugere men tabellerne kan være åbne på andre forme

Jeg formoder en tabel oprettet på en form lukkes når formen forlades - Er det ikke rigtigt?

For at lukke ALLE har jeg nu brugt:

Dim tbl As DAO.TableDef
For Each tbl In CurrentDb.TableDefs
    On Error Resume Next
    DoCmd.Close acTable, tbl.Name, acSaveYes
Next

Så virker det
Avatar billede terry Ekspert
06. januar 2021 - 09:30 #11
Lets keep to the original question which was
"Kan i ved VBA koder hjælpe med at finde hvad standard værdien i en tabel er sat til"

CurrentDb.TableDefs("Moms_Afgifter").Fields("Afgift_Pct").DefaultValue = Me.Moms_Pct

is setting the default value, not getting the default value ;-)

Now lets confirm if the original question is answered.

In the Immediate window (CTRL+G) write the following, followed by enter.

?CurrentDb.TableDefs("Moms_Afgifter").Fields("Afgift_Pct").DefaultValue

do you get a result?

If so, the original question is answered. If for some reason you get an error then this has probably something to do with what Gustav is indicating, and that is another issue
Avatar billede terry Ekspert
06. januar 2021 - 09:34 #12
and as you have discovered, the  reason you get the error 3422 is because you are trying to alter the value, not read the value
Avatar billede per2edb Ekspert
06. januar 2021 - 14:15 #13
Ja Gustav har ret.

Der har været en tabel der ikke har været lukket
Jeg troede alle forme var lukket og dermed alle tabeller lukket.
Det er øjensynlig ikke tilfældet

Som i ser ovenfor har jeg følgende spørgsmål:
Kan man regne med en tabel åbenet på en form lukkes igen automatisk når formen forlades?

Jeg har nu anvendt:

Dim tbl As DAO.TableDef
For Each tbl In CurrentDb.TableDefs
    On Error Resume Next
    DoCmd.Close acTable, tbl.Name, acSaveYes
Next

det lukker alle tabeller - herefter går sætningen af standardværdierne ok igennem uden fejl.

Findes der en enklere metode til at lukke tabellerne?
Avatar billede Gustav Ekspert
06. januar 2021 - 14:34 #14
> Findes der en enklere metode til at lukke tabellerne?

Ikke mig bekendt.
Avatar billede terry Ekspert
06. januar 2021 - 14:47 #15
Me neither.
Avatar billede terry Ekspert
06. januar 2021 - 15:11 #16
I would also suggest that Moms and afgift values are in tables. Not a good idea to alter table design in a production environment.

If you have the values in a table you can set the fields default value on the form to call a function which reads value from table.
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