Avatar billede verakso Nybegynder
29. januar 2008 - 13:03 Der er 5 kommentarer og
1 løsning

Hjælp til hændelseskald i Access

I en formular har jeg lidt problemer med at få tingende til at fungere som forventet

I en form, der består af et navne felt, efterfuldt af et dato felt, har jeg sat en knap ind, der når der trykkes, indsætter dags dato i dato feltet, med mindre der stod en dato i forvejen.

Mit problem er, at hvis man går direkte fra navne feltet og klikker på dato knappen, så indsættes datoen, men teksten i navne feltet forsvinder.

[code]
Private Sub imgCalendar_Click()
Dim dDate, svar, jNavn
   
    Me.JobNavn.SetFocus
    jNavn = Me.JobNavn.Value
    Me.DatoStart.SetFocus
   
    dDate = FormatDateTime(DateTime.Now, vbShortDate)
    If IsDate(DatoStart.Value) Then
        svar = MsgBox("Vil du overskive den aktuelle dato med dags dato?", vbYesNo)
        If svar = 6 Then
            DatoStart.Value = dDate
            JobNavn.Value = jNavn
        Else
            Exit Sub
        End If
    Else
        DatoStart.Value = dDate
        JobNavn.Value = jNavn
    End If
   
Exit_imgCalendar_Click:
    Exit Sub
End Sub
[/code]

Mit andet problem er omkring at klippe data sammen til udklipsholderen.

Dette har jeg forsøgt at løse ved at lave et skjult felt, indsætte de data jeg skal bruge, gøre det aktivt, sætte fokus, klippe, skjule, og flytte fokus.

Det er det sidste der driller, for egentligt ville jeg gerne flytte fokus tilbage til den knap jeg trykker på, men det kan man ikke få lov til da man åbenbart kun kan sætte fokus på input felter.

[code]
Private Sub imgClipboard_Click()
On Error GoTo Err_imgClipboard_Click

    With Me.jobIdNavn
        .Visible = True
        .SetFocus
        DoCmd.RunCommand acCmdCopy
        Me.JobID.SetFocus
        'Me.imgClipboard.SetFocus
        .Visible = False
    End With
       
Exit_imgClipboard_Click:
    Exit Sub
   
Err_imgClipboard_Click:
    MsgBox Err.Description & " - " & Err.Number
    Resume Exit_imgClipboard_Click
End Sub
[/code]

Så her er jeg kørt lidt fast, og har brug for noget ekspert hjælp for at komme videre.
Avatar billede mugs Novice
29. januar 2008 - 14:02 #1
Meget hurtigt (sklal til møde om lidt):

Private Sub imgCalendar_Click()
Dim dDate as date, svar as Byte, jNavn as string
Me.JobNavn.SetFocus
jNavn = Me.JobNavn
dDate = FormatDateTime(DateTime.Now, vbShortDate)
If not isnull(Me.DatooStart) Then
svar = MsgBox("Vil du overskive den aktuelle dato med dags dato?", vbYesNo)
If svar = 6 Then
DatoStart = dDate
JobNavn = jNavn
Else
Exit Sub
End If

If svar <> 6 then
DatoStart = dDate
JobNavn = jNavn
End If
End Sub


Hvis du vil kopiere posten og indsætte den som en ny post, kan du bruge denne:

DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.GoToRecord acForm, "Form1", acNewRec
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste
Avatar billede verakso Nybegynder
30. januar 2008 - 11:31 #2
Okay, jeg har kigget lidt og prøvet den kode du sendte, men som du skrev - så er den meget hurtig (virker ikke uden fejl)

Nu kan man altid begynde at diskutere syntax, men umiddelbart kan jeg ikke se hvad der skulle være radikalt anderledes en den kode jeg postede.
Der er brugt en lidt anden termonologi, men for mig at se, gør de to stykker kode nøjagtigt det samme.

Problemet med den første del kode, ligger nok i den måde som Access og formularer fungerer på.

Når jeg skriver noget ind i JobNavn og derefter klikker på imgCalendar_Click, så er data i JobNavn jo ikke gemt endnu, og det virker som om af Acces først der opretter recorden, og indsætter datoen. Problemet er så at den overskriver/fjerner det der stod i JobNavn.

Jeg havde troet at jeg kunne komme omkring dette ved at tage værdien fra JobNavn, gemme den, og derefter paste den ind igen. Problemet er bare, at værdien er null, da formen/data ikke er "registreret" endnu.

-------

Det andet problem, var i øvrigt ikke så meget omkring at kopiere en record, men mere at klippe nogle data fra formen, og gemme dem i udklipsholderen.
Det virker som sådan godt nok, men det irriterer mig at fokus flyttes væk fra den knap der ligger data i udklipsholderen.
Avatar billede verakso Nybegynder
30. januar 2008 - 11:33 #3
Nu har jeg siddet lidt mere og kigget på koden, og tilsyneladende er det mig der ikke kender forskel på .text og .value

Ændrer jeg koden til Me.JobNavn.Text så fungerer det, så mangler jeg bare at fikse problemet med fokus på udklips knappen.
Avatar billede mugs Novice
30. januar 2008 - 12:15 #4
Kan du ikke blot sætte fokus på den igen efter at have gennemløbet koden? Når du har trykket på knappen vil Access vel flytte fokus til næste kontrolelement i tabulatorrækkefølgen.
Avatar billede verakso Nybegynder
07. januar 2009 - 10:51 #5
mugs - det er lige præcis hvad jeg gjorde. Tak, smider du et svar?
Avatar billede mugs Novice
07. januar 2009 - 11:16 #6
Tak for point.
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