Avatar billede rosco Novice
18. juni 2003 - 21:34 Der er 34 kommentarer og
2 løsninger

Afkrydsningfelt: vis ikke formularen næste gang databasen åbnes.

Jeg fandt denne kode, men den vil ikke fungere.
fejlmeddelelse: Syntax Error

Private Sub Form_Load()
On Error Go To err_Form_Load
    'Fejlkode hvis Egenskaben ikke findes.
    Const IngenEgenskab=3270
    Dim db This As Database
    Dim doc This As Database
    Dim prp This As Property
    Set dbThis=Currentdb()  ' Handle Database
    Set docThis=dbThis.Containers("Database")
        !Userdefined
    If docThis.Properties!prpVisIkke Then
        'Egenskaben Ikke sand, indlæs ikke Formular
        DoCmd.Close
    End If
Exit_Form_Load
    Exit Sub
Err_Form_load:
    If Err=IngenEgenskaben Then
        'Opret 'prpVisIkke Egenskab
        Set prpThis=docThis.CreateProperty(
            "prpVisIkke",dbBoolean, False)
            docThis.Properties.Append prpThis
    Else
        'Vis sædvanlige fejlmeddelelse
        MsgBox Err.desciption, vbCritical
        Resume Exit_Form_Load
    End If
End Sub
Er der nogen der kan hjælpe mig?
Avatar billede rosco Novice
18. juni 2003 - 21:46 #1
Jeg har selv ryddet lidt op og er endt med.

Compile error:
User-defined type not definined
Med markering af dette i linie 5:  dbThis As Database
Avatar billede henrik13 Nybegynder
18. juni 2003 - 21:47 #2
Det kan gøres mere simpely med:

Dim strSQL As String
   
    'Undersøg om brugeren har fravalgt velkomstbilledet
    If chkVisVelkomst = False Then
   
        strSQL = "UPDATE tblSystemoplysninger SET VisVelkomst=False"
       
        CurrentDb.Execute strSQL
       
    End If
   
    'Luk formularen
    DoCmd.Close
En demo kan laves.
Vh Henrik
Avatar billede terry Ekspert
18. juni 2003 - 21:53 #3
I'm assuming that there is only one record in this table otherwise you have a problem!

Private Sub Form_Open(Cancel As Integer)
    If DCount("*", "YourTable", "SomeField = True") > 0 Then Cancel = True
End Sub
Avatar billede rosco Novice
18. juni 2003 - 21:54 #4
tblSystemoplysninger Hvad skal jeg bruge her
Avatar billede terry Ekspert
18. juni 2003 - 21:55 #5
If DCount("*", "tblSystemoplysninger ", "SomeField = True") > 0 Then Cancel = True
Avatar billede terry Ekspert
18. juni 2003 - 21:55 #6
what is the field name?
Avatar billede terry Ekspert
18. juni 2003 - 21:56 #7
what is the name of the table and field?
Avatar billede rosco Novice
18. juni 2003 - 21:58 #8
Jeg skulle måske oplyse at det er en velkomstformular
med et billede og et felt der oplyser hvor mange film der er i  videokartoteket, og så dette afkrydsningsfelt.
Avatar billede terry Ekspert
18. juni 2003 - 21:59 #9
Yes but the checkbox is BOUND to a field in a table isnt it? If not then where are you going to save the information when you check it?
18. juni 2003 - 22:01 #10
Dim doc This As Database bør vel hedde:
Dim docThis As Database
Avatar billede terry Ekspert
18. juni 2003 - 22:01 #11
Use this code and change YourTable and SomeField  to the name of the table and field in the database where the check box is bound to

Private Sub Form_Open(Cancel As Integer)
    If DCount("*", "YourTable", "SomeField = True") > 0 Then Cancel = True
End Sub
18. juni 2003 - 22:01 #12
og
Dim prp This As Property
skal hedde:
Dim prpThis As Property
Avatar billede rosco Novice
18. juni 2003 - 22:01 #13
afkryddsningsfelttet:chkVisVelkomst
Tabel: Videobånd
Form: Velkomst
Sumfelt der tæller film: AntalFilm
Avatar billede henrik13 Nybegynder
18. juni 2003 - 22:02 #14
Så er demoen færdig, læg din e-mail adresse hvis du vil havde den.
Avatar billede terry Ekspert
18. juni 2003 - 22:04 #15
Private Sub Form_Open(Cancel As Integer)
    If DCount("*", "Videobånd", "Velkomst= True") > 0 Then Cancel = True
End Sub
Avatar billede terry Ekspert
18. juni 2003 - 22:04 #16
I am assuming that Form is Field?
Avatar billede rosco Novice
18. juni 2003 - 22:19 #17
Terry:
denne her virkede,
Private Sub Form_Open(Cancel As Integer)

If DCount("*", "Videobånd", "chkVisVelkomst = True") > 0 Then Cancel = True

End Sub

Men jeg mangler at få åbnet "Forside".
Avatar billede terry Ekspert
18. juni 2003 - 22:21 #18
Then you should be able to use

Docmd.openform "YourForside"
Avatar billede terry Ekspert
18. juni 2003 - 22:21 #19
Terry:
denne her virkede,
Private Sub Form_Open(Cancel As Integer)

If DCount("*", "Videobånd", "chkVisVelkomst = True") > 0 Then Cancel = True
Docmd.openform "YourForside"

End Sub
Avatar billede terry Ekspert
18. juni 2003 - 22:24 #20
YourForside is the name of the form you want to open
Avatar billede terry Ekspert
18. juni 2003 - 22:27 #21
Now I'm off for the evening :o)
Avatar billede rosco Novice
18. juni 2003 - 22:30 #22
Så mister jeg min timer funktion:
Private Sub Form_Timer()

    DoCmd.Close acForm, Me.Name
   
    stDocName = "Forside"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
   
End Sub
Den ville jeg gerne beholde.
Avatar billede rosco Novice
18. juni 2003 - 22:47 #23
henrik13
Jeg har fået terrys kode til at virke ( bortset fra Timerfunktionen)
Jeg ville gerne se eksemplet for jeg fik det ikke til at virke.
erlenbach@adslhome.dk
Ser på det i morgen Go`nat :o)
Avatar billede overchord Nybegynder
19. juni 2003 - 10:15 #24
I din kode er der en par helt basale problemer med variabel navne.

I din error kode er det 
If Err=IngenEgenskaben Then

- men din konstant er sat som
Const IngenEgenskab=3270


Det samme gaelder for database variablen.
I deklarationen er :
Dim db This As Database
- med mellmerum, hvorefter du saeeter variable dbThis (uden mellemrum) til currentdb.
Det samme ser ud til at vaere problemet for docThis vs. doc This
Avatar billede terry Ekspert
19. juni 2003 - 12:05 #25
what are you using the timer for?

Private Sub Form_Open(Cancel As Integer)

If DCount("*", "Videobånd", "chkVisVelkomst = True") > 0 Then Cancel = True
  Docmd.openform "YourForside"
    Cancel = True
Else
  Me.timer = 3000 '(3 seconds)
End Sub
Avatar billede terry Ekspert
19. juni 2003 - 12:07 #26
You should set the timer to 0 as default in the properties.
Avatar billede terry Ekspert
19. juni 2003 - 20:13 #27
rosco>Hows it going, still having problems?

You can send the dB to eksperten@santhell.dk and I will take a look.
Avatar billede rosco Novice
19. juni 2003 - 21:48 #28
Hi terry:
Koden i ved timerudløb, bruger jeg til  automatisk efter 5 sek at lukke velkomst Og åbne forside.
Avatar billede terry Ekspert
19. juni 2003 - 21:57 #29
have you tried my answer 19/06-2003 12:05:46?
Avatar billede rosco Novice
19. juni 2003 - 22:22 #30
Else Whithout If
Er beskeden:

Min db fylder 4MB Zippet
Avatar billede rosco Novice
19. juni 2003 - 22:33 #31
Jeg har sendt en eksempeldb med den velkomst jeg bruger.
Avatar billede rosco Novice
19. juni 2003 - 23:12 #32
Hi terry.
Ved at rette lidt her og der, lykkedes det mig at få koden til at virke ligesom jeg vil ha´den til. den ser sådan ud.

Private Sub Form_Open(Cancel As Integer)
On Error GoTo Err_Form_Open

If DCount("*", "Tabel1", "VisVelkomst = True") > 0 Then Cancel = True

'Hvis Visvelkomst er afkrydset åbnes "Forside"
If Cansel = False Then
DoCmd.OpenForm "Forside"

'Ellers lukkes "Velkomst" efter 5 sek, hvorefter "Forside" åbnes
Else
    OnTimer() = 5000 '(5 seconds)
    DoCmd.Close acForm, Me.Name
   
    stDocName = "Forside"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
End If

Exit_Form_Open:
    Exit Sub

Err_Form_Open:
    MsgBox Err.Description
   
End Sub
Avatar billede rosco Novice
19. juni 2003 - 23:17 #33
thomasjepsen:
Tak , Jeg opdagede også at der var alt for mange mellemrum i koden, men der var mere at rette end det, derfor brugte jeg terrys forslag.
Avatar billede rosco Novice
19. juni 2003 - 23:19 #34
overchord:
Tak for hjælpen, koden er for uoverskuelig, jeg droppede den til fordel for terrys.
Avatar billede rosco Novice
19. juni 2003 - 23:22 #35
Henrik13:
tak for forslaget, den skal jeg nok få brug for på et tidspunkt.
der er også point til dig.
Avatar billede terry Ekspert
20. juni 2003 - 17:47 #36
rosco>I received a mail but no dB?


There seems to be a couple of errors on the example you gave 19/06-2003 23:12:59

Private Sub Form_Open(Cancel As Integer)
On Error GoTo Err_Form_Open

If DCount("*", "Tabel1", "VisVelkomst = True") > 0 Then Cancel = True

'Hvis Visvelkomst er afkrydset åbnes "Forside"

>>>Cancel<>>>
If Cansel = False Then
DoCmd.OpenForm "Forside"

'Ellers lukkes "Velkomst" efter 5 sek, hvorefter "Forside" åbnes
Else
>>>>This might work but I would use me.timer = 5000
    OnTimer() = 5000 '(5 seconds)
    DoCmd.Close acForm, Me.Name
   
    stDocName = "Forside"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
End If

Exit_Form_Open:
    Exit Sub

Err_Form_Open:
    MsgBox Err.Description
   
End Sub
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

IT-JOB

HusCompagniet A/S

Senior data engineer

Capgemini Danmark A/S

Client Partner

Capgemini Danmark A/S

AI/Data Engineer