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
Hallo,
der Laufzeitfehler hat auch einen Text, bitte zitieren.
Und verwende für Codes die Codetags des Forums.
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
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ß
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")
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
Hallo,
ein Blick in die Hilfe hilft.