17. april 2007 - 10:36Der er
16 kommentarer og 2 løsninger
dataoverføring fra post1 til post2
Hej eksperter!
Arbejder i formularvisning og udtryksgenerator og behøver hjælp til følgende:
Er ved at lave en database som skal holde styr på drifttimer. Når man skifter til næste post påbegyndes en ny uge.
Det som jeg mangler er et udtryk, eller ide til, hvordan timerne i tekstboks [fredag] fra post 1, kan overføres til tekstboks [forrige uge] i post 2. Sådan at drifttimerne opdateres fra post til post. (drifttimerne fra [fredag] i post 1 overføres til [forrige uge] i post 2).
Private Sub Form_Current Dim rs As DAO.Recordset If Me.NewRecord Then Set rs = Me.RecordsetClone rs.MoveLast Me!DitFelt.DefaultValue = rs!DitFelt rs.Close End If End sub
Gå i formularens designvisning > Højreklik på det mørkegrå område > egenskaber > Fanen hændelser > sæt markøren på linien Current (danske versioner: VedAktuel)> tryk på de 3 små i højre ... side > kodegenerator og her indsætter du koden. Ret DitFelt til navnet på dit aktuelle felt.
Referencer > Tools > References og find DAO biblioteket og sørg for, at der er et checkmærke i vendtre side. Luk alt og afprøv koden ved at skifte post.
Nysgerrig ;o) Hvad nu, hvis du indtaster ændringer til uge x? Så forventer du vel at [forrige uge] i uge x+1 opdateres automatisk - eller hvad? Eller kan man ikke rette "gamle" uger?
Synes godt om
Slettet bruger
19. april 2007 - 09:13#6
Det nemmeste for dig er nok at lave en knap, som du kunne kalde eks. Overfør:
-Opret en knap fra værktøjslinien og tryk Cancel -Navngiv din knap -Højreklik og vælg øverste mulighed "Build Event" -Vælg derefter nederste mulighed "Code Builder" -Indtast så det kommer til at se sådan ud:
Private Sub NavnPåDinknap_Click() Dim a a = Me.Fredag DoCmd.RunCommand acCmdRecordsGoToNext Me.Forrige_uge = a DoCmd.RunCommand acCmdRecordsGoToPrevious End Sub
har sat følgende ind i kodegeneratoren men det virker ikke når jeg bladre frem til næste post, hvor der skullle være sket en opdatering.
Private Sub Form_Current() Dim rs As DAO.Recordset If Me.NewRecord Then Set rs = Me.RecordsetClone rs.MoveLast Me!fredag.DefaultValue = rs!Varmelevering_forrige_uge rs.Close End If
End Sub
Synes godt om
Slettet bruger
20. april 2007 - 09:02#8
Skal det ikke være:
Private Sub Form_Current() Dim rs As DAO.Recordset If Me.NewRecord Then Set rs = Me.RecordsetClone rs.MoveLast Me.Varmelevering_forrige_uge.DefaultValue = rs!Fredag rs.Close End If End Sub
Men det virker kun når du opretter en ny uge, du kan ikke gå tilbage og rette i uger!~)
Ps. Husk at der skal være en reference til DAO i visual basic...
Private Sub NavnPåDinknap_Click() Dim a a = Me.Fredag DoCmd.RunCommand acCmdRecordsGoToNext Me.Forrige_uge = a DoCmd.RunCommand acCmdRecordsGoToPrevious End Sub
er der ikke problemer, men følgende virker ikke helt:
Private Sub Form_Current() Dim rs As DAO.Recordset If Me.NewRecord Then Set rs = Me.RecordsetClone rs.MoveLast Me.Varmelevering_forrige_uge.DefaultValue = rs!Fredag rs.Close End If End Sub
Ellers prøv at se de besvarede spørgsmål på eksperten. Der har jeg stort set lært alt, ved at afprøve de forskellige svar ved at bygge en lille testdb. Se også artikel sektionen, hvor der er forklarende tekst til artiklerne.
Synes godt om
Ny brugerNybegynder
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.