Avatar billede larsgrau Forsker
15. februar 2017 - 14:28 Der er 4 kommentarer og
1 løsning

Bookmark

Hej

Jeg bruger denne funktion

if not isnull(me.parent.openargs) then
    Dim auto As long
    Dim rs As Object

  Set rs = Me.Recordsetclone
  auto = Val(Me.Parent.OpenArgs)
  rs.FindFirst "[auto]=" & auto
  If not rs.EOF Then Me.Bookmark = rs.Bookmark

End If

Jeg kunne godt tænke mig at bruge 2 felet istedet for det ene nu som er auto. Jeg vil gerne bruge Dato og Klok felt istedet, men hvordan ligger jeg dem ind i rs.FindFirst?

Jeg har prøvet
"[Dato] & [Klok]=" & auto
og
"[auto]=" & Dato & Klok

Nogen ideer ?

/lars
Avatar billede fdata Forsker
15. februar 2017 - 15:10 #1
Hm. Som udgangspunkt kan du kun overføre én værdi i OpenArgs; men du kan jo pakke de to værdier i et enkelt felt, f.eks.
    x=format(Dato+Klok,"ddmmyy_hhnn")
Ovenstående forudsætter at Dato og Klok er af typen Date. Hvis det er tekster, kan du f.eks. bruge:
  x=Dato & "_" & Klok
Så overfører du x som argument til din form.

I din kode i selve formen kan du så sammenligne en sammensat værdi (sammensat af Dato og Klok på samme måde som ovenfor) med OpenArgs.
Det kræver formodentlig at du skyder en forespørgsel ind, hvor du beregner den sammensatte værdi.
Det giver altså:
  auto = Val(Me.Parent.OpenArgs)
  rs.FindFirst "[DenSammensatte]=" & auto

... eller noget i den stil ;O)
Avatar billede fdata Forsker
15. februar 2017 - 17:28 #2
Rettelse:
  Dim auto As String
  ...
  auto = Me.Parent.OpenArgs
  rs.FindFirst "[DenSammensatte]='" & auto & "'"
Avatar billede terry Ekspert
15. februar 2017 - 18:00 #3
if auto is one field then you just need to combine the date and time into openargs, dont see any reason why you should try passing two over and then combining them.
Avatar billede larsgrau Forsker
16. februar 2017 - 10:33 #4
Takker for svaret jeg brugte denne løsning

x=Dato & "_" & Klok

Det virker takker
Avatar billede bvirk Guru
16. februar 2017 - 18:39 #5
Det Terry ganske rigtigt pointerer som overflødigt, ville svare til, hvis man havde en tabel med skonumre, så at bruge 2 felter - et til enerne 'skod0' og et til tierne 'skod1' og så beregne nummeret som 10*d1+d0 - fikst!

En tabel med formular:

tidspunkt                    program
-----------------------------------
14-02-2017 09:00:00    Milionærklubben
14-02-2017 10:00:00    Det røde kabinet
16-02-2017 10:00:00    Spørge Jørgen
16-02-2017 16:00:00    Rene ord for pengene
17-02-2017 11:00:00    Det vi taler om

Private Sub Form_Open(Cancel As Integer)
    If Not IsNull(OpenArgs) Then
        With RecordsetClone
            .FindFirst "cdbl(tidspunkt)=" & Replace(OpenArgs, ",", ".")
            If Not .NoMatch Then Bookmark = .Bookmark
        End With: End If
End Sub

docmd.OpenForm "Radioprogrammer",,,,,,cdec(cdate("14/2 10:00:00"))

Bemærk at openArgs ikke overfører en streng som er formateret som tidspunkt - det er heller ikke det som har været tilfældet med vba stumpen i spørgsmålet (... as long)
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

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