Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Formular soll beim Start geöffnet werden, es erscheint Laufzeitfehler

Begonnen von Staplerfahrer Klaus, August 05, 2020, 09:01:41

⏪ vorheriges - nächstes ⏩

Staplerfahrer Klaus

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

MzKlMu

Hallo,
der Laufzeitfehler hat auch einen Text, bitte zitieren.

Und verwende für Codes die Codetags des Forums.
Gruß Klaus

ShenTo19

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

Staplerfahrer Klaus

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ß

DF6GL

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")
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

crystal

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
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

DF6GL

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access