Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Staplerfahrer Klaus am August 05, 2020, 09:01:41

Titel: Formular soll beim Start geöffnet werden, es erscheint Laufzeitfehler
Beitrag von: Staplerfahrer Klaus am August 05, 2020, 09:01:41
Hallo,
Ich versuche, dieses Ding hier ohne Fehler zum Laufen zu bringen, bin aber ehrlich gesagt überfordert.

Es soll beim Start ein Formular geöffnet werden, welches auch auf geht, allerdings erscheint erstmal die Fehlermeldung "Laufzeitfehler".

Private Sub subselectstudy()
'On Error Resume Next
Dim xopen As Boolean
Me.fullsub.SourceObject = ""
Me.fullsub.Visible = False
Me.mainsub.Visible = True
Me.datasub.Visible = True
set_Estimate_Menu_off


Me.Com_SelectStudy.SetFocus
set_Estimate_Menu_on

' here message if necessary
' *************


'switch off Estimate if Study not selected
Me.Com_SelectEstimate.Visible = False
Me.datasub.Visible = True
Me.datasub.SourceObject = ""

' init Study Selection
Me.mainsub.SourceObject = "substudylist"
Me.mainsub.Visible = True
Forms!Estimate!mainsub!f_selected_study.Width = GlobalMaindataWidth
Forms!Estimate!mainsub!f_selected_study.Height = 2990
set_Estimate_Menu_on


'check if XID & Study available
Dim xID As Integer
xID = Nz(Me.xID)    -------------> an dieser Stelle meckert der Debugger mit Laufzeitfehler


If StudyExists(xID) Then
xopen = DLookup("[open]", "cost_studies", "[id] = " & xID)
Forms!Estimate!mainsub!Filter_Plant = 100
Forms!Estimate!mainsub!Filter_Status = 5 ' look for all Studies when open form

'look for open or closed studies
'If xopen = True Then
'Forms!Estimate!mainsub!Filter_Status = 1
'Else
'Forms!Estimate!mainsub!Filter_Status = 2
'End If

'On Error Resume Next
Forms!Estimate!mainsub.Form.GetStudyData
End If


'LISTE DURCHLAUFEN
Dim ctl As Control
Dim varElement As Variant
Dim Xvalue As Boolean
Set ctl = Forms!Estimate!mainsub!f_selected_study

'check if Xid is included in Listbox from mainsub (Forms!Estimate!mainsub!f_selected_study)

For varElement = 1 To ctl.ListCount - 1
    If Int(ctl.Column(0, varElement)) = xID Then
        Xvalue = True
        Forms!Estimate!mainsub!f_selected_study = xID
      Else
      'xvalue = False
      End If
Next varElement



'On Error Resume Next
If Xvalue Then
'set Study ID & Titel in Estimate Form
    Me.lab_subtitel.Caption = "" & Forms!Estimate!mainsub!f_selected_study.Column(0) & ": " & UCase(Forms!Estimate!mainsub!f_selected_study.Column(5))



'set subform "datasub" SourceObject
    Me.datasub.SourceObject = "substudy"
    Me.Com_SelectEstimate.Visible = True
    Me.datasub.Visible = True
   
   
        If Forms!Estimate!datasub!f_open = False Then
        Forms!Estimate!datasub!RefOpen = "locked"
        End If
   
'error message to fixit
On Error Resume Next
    Forms!Estimate!datasub.Form.Recordset.FindFirst "ID = " & xID
   
   
    Else
    Me.Status = "no Study ID found, please select Study"
   
    Me.datasub.SourceObject = "substudy"
    Me.Com_SelectEstimate.Visible = True
    Me.datasub.Visible = True
    'Forms!Estimate!datasub.Form.Recordset.AddNew
    ' study not existing
    ' what happens then
    Exit Sub
End If
End Sub
Titel: Re: Formular soll beim Start geöffnet werden, es erscheint Laufzeitfehler
Beitrag von: MzKlMu am August 05, 2020, 09:12:20
Hallo,
der Laufzeitfehler hat auch einen Text, bitte zitieren.

Und verwende für Codes die Codetags des Forums.
Titel: Re: Formular soll beim Start geöffnet werden, es erscheint Laufzeitfehler
Beitrag von: ShenTo19 am August 05, 2020, 09:21:15
Hallo,
Me.xID deutet darauf hin, dass es ein Feld mit dieser Bezeichnung gibt, gleichzeitig erzeugst Du eine Variable gleichen Namens. Das könnte zu einem Konflikt führen, worüber der Text des Laufzeitfehlers, wie bereits angemahnt, Auskunft geben könnte.
Ich meine ausserdem es sei richtig Me!xID zu verwenden.
Gruß Thomas
Titel: Re: Formular soll beim Start geöffnet werden, es erscheint Laufzeitfehler
Beitrag von: Staplerfahrer Klaus am August 05, 2020, 09:42:52
Hallo,

Erstmal danke für die schnelle Antwort!!!

Das ist die Fehlermeldung, welche erscheint:
Laufzeitfehler (dann Zahlenwerte, braucht ihr die auch?)
Sie haben einen Ausdruck ohne Wert eingegeben.

Sorry wegen der Codetags bzw. das weglassen derer

Gruß
Titel: Re: Formular soll beim Start geöffnet werden, es erscheint Laufzeitfehler
Beitrag von: DF6GL am August 05, 2020, 10:36:59
Hallo,

vermutlich gibt es das Feld Me.xID  nicht in der Datenherkunft des Forms oder die Sub subselectstudy()  wird schon aufgerufen, bevor die Daten überhaupt gelesen wurden und damit Me.xID existieren kann (z. B. im Form-Ereignis "Beim Öffnen")
Titel: Re: Formular soll beim Start geöffnet werden, es erscheint Laufzeitfehler
Beitrag von: crystal am August 05, 2020, 12:16:52
Mal 'ne ganz dumme Frage:
braucht nicht die nz-Funktion 2 Parameter, nämlich
1. den Wert, der geprüft werden soll und
2. den Ersatz-Wert???

Gruß,
crystal
Titel: Re: Formular soll beim Start geöffnet werden, es erscheint Laufzeitfehler
Beitrag von: DF6GL am August 05, 2020, 13:03:56
Hallo,

ein Blick in die Hilfe hilft.