Avatar billede hnto Nybegynder
02. marts 2003 - 20:10 Der er 24 kommentarer og
1 løsning

Dlookup haster

kan man ikke bruge Dlookup fra en form til en anden ?
Hvis ikke hvordan henter jeg så værdien i text35 på form1
over i text200 på form2 når form2 recordsource er reserveret til en tabel ?
Avatar billede mugs Novice
02. marts 2003 - 20:14 #1
Dlookup henter en tilsvarende værdi fra en anden tabel. f.eks.:

Dim Stringsearch As String
Stringsearch = Me!Navn
Me!Tekst4 = DLookup("[Gade]", "Tabel2", "[Navn]='" & Stringsearch & "'")

Hvor tekst4 er = feltet Gade i Tabel2, hvor formularens felt Navn er søgestrengen.
Avatar billede terry Ekspert
02. marts 2003 - 20:15 #2
solution depends on a number of things!
If you open form 2 from form1 then you can transfer the value in the openargs paramter when you open the form.

How are you doing this
Avatar billede terry Ekspert
02. marts 2003 - 20:16 #3
me.text200 = forms!form1.somefield
Avatar billede terry Ekspert
02. marts 2003 - 20:17 #4
that would be
me.text200 = forms!form1.text35
Avatar billede hnto Nybegynder
02. marts 2003 - 20:17 #5
Mugs.
Jeg kender godt brugen af dlookup når der tales om tabeller og query, men synes ikke at jeg nogen sinde har stødt på brugen af denne fra en form til en anden. så spørgsmålet er hvis ja, hvordan?
Avatar billede terry Ekspert
02. marts 2003 - 20:20 #6
you can NOT use dlookup to get the data from a form but you can use it to get the data from a field in a table!
Avatar billede hnto Nybegynder
02. marts 2003 - 20:21 #7
terry.

Den skriver at den ikke kan finde form1 som der refereres til i en macro eller VB.

skal jeg DIM denne til at starte med ?
Avatar billede mugs Novice
02. marts 2003 - 20:22 #8
Sandsynligvis stavefejl.
Avatar billede hnto Nybegynder
02. marts 2003 - 20:23 #9
Det med Dlookup anede mig ;-((

Den anden løsning med at skrive det i VBA er jeg klart også mere tilhænger af... hvis vi lige kan få det til at funge.. ;-)
Avatar billede mugs Novice
02. marts 2003 - 20:24 #10
Prøv denne:

DoCmd.OpenForm "Form2"
Forms!Form2!Felt1.SetFocus
DoCmd.FindRecord Me!Felt1
Avatar billede terry Ekspert
02. marts 2003 - 20:25 #11
if you have an unbound field on form 2 open form 1 then in the properties of the field in form 2 open th eproperties and then select th econtrol source property. Then press the button to the right of the field to open the epression builder.

Now its just a case of finding the field on form 1 where you want to take the data from.
Avatar billede hnto Nybegynder
02. marts 2003 - 20:25 #12
ingen stavefejl... desværre .
Avatar billede terry Ekspert
02. marts 2003 - 20:27 #13
hnto>Its important to think of WHEN you want to get the value from form 1!
Is it when you start creating a new record on form 2 or when you open form 2?
Avatar billede hnto Nybegynder
02. marts 2003 - 20:29 #14
open form 2

Record text35 er et beregnet felt i form1. Dette skal yderligere bruges i form2
Derfor har jeg sat dit VBA script på "on open"
Avatar billede terry Ekspert
02. marts 2003 - 20:29 #15
under which circumstances do you want to take the value from form 1 over to form 2?
The solution depends on this infromation!
Avatar billede terry Ekspert
02. marts 2003 - 20:32 #16
in form 1

DoCmd.OpenForm "[form 2]", , , , acFormAdd, acDialog, me.text35

in form 2
Private Sub Form_Load()
    If Not IsNull(Me.OpenArgs) Then Me.text299 = Me.OpenArgs

End Sub
Avatar billede terry Ekspert
02. marts 2003 - 20:32 #17
text299  = text200
Avatar billede terry Ekspert
02. marts 2003 - 20:34 #18
this code opens form 2 ready to start entering data in a NEW record. The value from form1 field text35 is carried over to form 2 and put in field200
Avatar billede hnto Nybegynder
02. marts 2003 - 20:34 #19
Det er fint nok med mig at værdien kun hentes såfremt form1 er åben i baggrunden, da den vel ellers ej heller beregner feltets værdi.
Når form2 åbnes skal den så hente værdien fra den allerede åbne form1.

Er der andre løsninger der er lettere må det gerne være sådan også.. jeg er åben for alternativer sålænge vi bare taler opslag fra en til en anden.

Det rigtig gode kunne være at man kunne dimensionere sin form1 i form2 så man via VBA kunne hente andre værdier også direkte ved at skrive. xx.value = yy.value.. men dette er ønsketænkning.. ;-)
Avatar billede terry Ekspert
02. marts 2003 - 20:35 #20
hnto>I dont know the correctnames of your forms or fields so you need to alter my examples to the correct names
Avatar billede terry Ekspert
02. marts 2003 - 20:40 #21
if you need to update values on BOTH forms while they are open then you also need to refresh form 2 if you alter values in form 1

If this is th ecas ethen you can NOT use the solution I gave 20:32:20 as this only works when you open form 2

but again it all depends on WHEN you want to get the value from form 1!!!!!
Avatar billede terry Ekspert
02. marts 2003 - 20:44 #22
hows it going hnto?
Avatar billede hnto Nybegynder
02. marts 2003 - 20:50 #23
Here it is:

Jeg har en start form 'start'. ved click på en knap vil jeg lave flg.

On_click
docmd.openform "form1"
docmd.openform "form2"

Jeg står nu i form2 og vil da at værdien i form1.text35 også er placeret i form2.text200.  Der er ikke tale om opdateriner af værdien hverken fra form1 eller form2. ( værdien er beregnet aut. ud fra tal i form1)

gør dette det hele lettere at forstå.

NB.
Form1 er et budgetskema hvor værdien i text35 er summen af alle udgifter for hele året totalt.
Form2 er et lønberegningsprogram der viser årets nettosaldo nederst  sammen med en masse andet "skrammel". Her ville det være rart at kunne regne videre ud fra lønnens netto om året opretholdt mod budgettes sum.

Nu har i fået det hele tror jeg nok ;-))

Dit eks med at openargs og hvad der mere lå heri virker ikke helt efter hensigten da værdien er tom ( NULL )
Avatar billede hnto Nybegynder
02. marts 2003 - 20:56 #24
jeg ved ikke lige hvad der sker men her er løsningen :

Me!Text200.Value = Form_form1.Text35

kontra terrys første forsøg:
me.text200 = forms!form1.text35

jeg vil dog alligevel give point for en 'sej kamp'
Avatar billede terry Ekspert
02. marts 2003 - 21:00 #25
tak
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