Print side | Luk vindue

Overføre info fra poster til nye poster i en form

Udskrevet fra: Dansk Access Forum
Kategori: Hjælp til Access
Forum navn: Generelt
Forum beskrivelse: Spørgsmål til den daglige brug af selve programmet Access
Web-adresse: https://www.accessforum.dk/forum_posts.asp?TID=72
Udskrevet den: 21-11-2024 kl. 19:23


Emne: Overføre info fra poster til nye poster i en form
Besked fra: OnkelB
Emne: Overføre info fra poster til nye poster i en form
Posteringsdato: 08-07-2015 kl. 04:20
Hejsa


Først beklager jeg mange gange, hvis spørgsmålet er besvaret i en anden tråd, men jeg har ikke kunnet finde det.

Jeg har følgende udfordring:

Jeg har oprettet en form til indtastning af varer i min database og ville gerne have "Default value" (standardværdien) i flere felter til at være det samme, som i den foregående post. Dvs., hvis jeg har valgt Varetype: Øl, så skal den næste post have varetypen udfyldt, når jeg opretter den.

Giver det mening? Det er et spørgsmål om, at gøre indtastningen af varer lettere. :)

Mvh


Onkel B / Brian



Svar:
Besked fra: thomasbk
Posteringsdato: 23-07-2015 kl. 14:10
Jeg kan se to måder at gøre det på.

1. Ved afslutning af den igangværende post lagrer du standardværdien i en public variabel der i sagens natur ikke slettes. Herefter kalder du denne variabel når næste post igangsættes.

2. Ved igangsætning af ny post, søger du den ønskede værdi i senest record og sætter ind i det ønskede felt.

Mulighed 2 er nok den bedste.


Besked fra: hkh
Posteringsdato: 23-07-2015 kl. 16:38
Hvis det kun er i en formular du skal bruge værdien, og du indtaster dem efter hinanden, kan du nøjes med felter der er skjulte.

Hvis vi tager feltet varetype kan du have et skjult(ikke synligt) felt huskvaretype
For varetype skal der være en hændelsesprocedure for efter opdatering.
Hændelsesproceduren gemmer værdien i varetype i huskvaretype.


private sub Varetype_Afterupdate()
if nz(varetype)<>"" then huskvaretype=varetype
end sub


Så skal du have en hændelsesprocedure for formularens ved aktuel post, eller sætte varetype standardværdi=huskvaretype.
metoden med standardværdi påvirker kun nye poster, medens hændelsesproceduren påvirker alle poster hvor varetype er tomt, hvis du bladrer i gennem posterne.


private sub Form_current()
'Hvis feltet varetype er tomt, skal det have værdien i huskvaretype
if nz(varetype)=""then
if nz(huskvaretype)<>""then varetype =huskvaretype
endif
end sub


nz() er en funktion der undersøger om en variabel eller et felt er tomt.
Du skal have et skjult felt for hvert felt du ønsker gentaget

-------------
Hans


Besked fra: OnkelB
Posteringsdato: 27-07-2015 kl. 20:51
Tak til begge svar.

Har været på koloni, så har ikke haft tid til at se på access i nogle uger. :)

Jeg tror I skyder for højt her, for jeg fatter slet slet ikke, hvad der menes. Bevares, jeg kender til variabler, men at lave en skjult variabel og trække den med i næste formularpost virker lidt omstændigt. Har access ikke en funktion, som den thomasbk foreslår? Altså at den kan finde den seneste værdi?

På forhånd mange tak. :)




Besked fra: hkh
Posteringsdato: 28-07-2015 kl. 01:31
Citér Med felter der er skjulte, menes at du opretter et felt et tilfældigt sted på formularen, højreklikker vælger egenskaber, vælger fanen formater og sætter synlig til nej.

Så skal du give feltet et navn, det sker under fanen andre i egenskaber.
Her kan du for varetype vælge HuskVareType.

Så skal du markere feltet varetype, vælge egenskaber og fanen hændelser.
Der vælger du efter opdatering, klikker på knappen med tre prikker til højre, vælger hændelsesprocedure.
Så skulle der åbnes et vindue hvor der er følgende:
Citér
Private sub Varetype_Afterupdate()

end sub

Nu indsætter du "If nz(varetype)<>"" then HuskVareType=varetype" mellem de to linier så resultatet bliver

Private sub Varetype_Afterupdate()
if nz(varetype)<>"" then HuskVareType=varetype
end sub

Derefter markerer du feltet varetype, vælger egenskaber(højreklik) og fanen data her finder du Standardværdi og indtaster følgende: =HuskVareType.

Ovenstående gentages for hvert felt du ønsker at værdier skal gentages.


Citér
En variabel er en navnet på en kasse, som man kan gemme forskellige ting i.
Det kan være den samme ting eller forskellige ting, når man bruger navnet på kassen bytter access navnet på kassen ud med indholdet.




-------------
Hans


Besked fra: hkh
Posteringsdato: 28-07-2015 kl. 01:45
Citat: OnkelB OnkelB skrev:

Tak til begge svar.

Har været på koloni, så har ikke haft tid til at se på access i nogle uger. :)

Jeg tror I skyder for højt her, for jeg fatter slet slet ikke, hvad der menes. Bevares, jeg kender til variabler, men at lave en skjult variabel og trække den med i næste formularpost virker lidt omstændigt. Har access ikke en funktion, som den thomasbk foreslår? Altså at den kan finde den seneste værdi?

På forhånd mange tak. :)



Hvis du vil søge på seneste post kan det godt lade sig gøre, men det bliver ikke mere enkelt.
Så skal du ind i formularens Vedaktuel hændelse.

Der skal du have følgende:
Private Sub Form_Current()
   dim data as recordset
   set data=currentdb.OpenRecordset("select Navnetpådintabel,* from Navnetpådintabel")
   While data.eof=false
      data.movelast
      VareType=data!varetype
      data.movenext
   Wend

   set data=nothing
End Sub

Der er flere metoder til at hente dine oplysninger på, den ovenfor er bare en af mulighederne.



-------------
Hans


Besked fra: OnkelB
Posteringsdato: 28-07-2015 kl. 12:00
Hejsa Hans

Så virker det sgu. Jeg skulle lige læse dit indlæg igennem et par gange og tage hovedet ud af røven, men alt virker nu. 

Jeg takker ydmygt for din hjælp!



Print side | Luk vindue