Hallo Zusammen,
ich habe ein Modul erzeugt in dem ich eine Datentyp deklariert und eine Sub in der ich eine Variable des Datentyp erzeugt habe.
Alles kompiliert, ohne Fehler.
Anschließend markiere ich den Datentyp der Variable und möchte über das Kontextmenü->Definition zu dem Datentyp springen.
Es kommt die Fehlermeldung "Bezeichner unter dem Cursor nicht bekannt"
Programmbeispiel:
Modul1
Option Explicit
Public Type tCENomenklatur
sFamBez_I As String
sSteckerGr_II As String
sSteckerAusf_III As String
sSteckerQ_IV_VI As String
sSteckerFormQ_IV As String
sAusfSTI_V As String
sSTIBesch_VI As String
sSteckerZ_VII_IX As String
sSteckerFormZ_VII As String
sAusfBU_VIII As String
sBUBesch_IX As String
sAnschluesse_X_XII As String
sPolAnz_X As String
sAWGLST_XI As String
sAWGSIG_XII As String
sCGrVerschr_XIII As String
sCableTyp_XIV As String
sSchirmung_XV As String
sMatNr_XVI As String
sMatNrVar_XVII As String
sATECFam_II As String '20220104-RSP Änderung
sATECCurVar_III As String '20220104-RSP Änderung
sATECSafe_IV As String '20220104-RSP Änderung
sATECCurMon_V As String '20220104-RSP Änderung
sATECAddFeat_VI As String '20220104-RSP Änderung
sATECInpIF_VII As String '20220104-RSP Änderung
sATECOutIF_VIII As String '20220104-RSP Änderung
sATECComFB_IX As String '20220104-RSP Änderung
sATECComSys_X As String '20220104-RSP Änderung
sATECMatNr_XI As String '20220104-RSP Änderung
sATECMatNrVar_XII As String '20220104-RSP Änderung
End Type
Sub test()
Dim lCENomStruct As tCENomenklatur
Dim a As tCENomenklatur
End Sub
Vorgehen:
-> tCENomenklatur markieren
-> rechte Maustaste -> Kontextmenü "Definition"
Fehlermeldung: "Bezeichner unter dem Cursor nicht bekannt" (siehe Screenshot)
Habe in alle Foren gesucht, aber keine Lösung gefunden.
Ich bin der Meinung, dass dies schon mal funktioniert hat!?
Vielen Dank schon mal im Voraus
Gruß RSprotte
Hast du mal ein decompile versucht?
Zitat von: RSprotte am Oktober 13, 2023, 09:21:40Fehlermeldung: "Bezeichner unter dem Cursor nicht bekannt" (siehe Screenshot)
Ich fürchte das "ist halt so".
Das Problem, dass die Definition von benutzerdefinierte Datentypen nicht gefunden wird, ist mir seit Jahren bekannt. Das ist ärgerlich, aber es bedeutet sonst keine weiteren Probleme mit dem Code der Anwendung.
Zitat von: PhilS am Oktober 13, 2023, 12:09:40Das Problem... ist mir seit Jahren bekannt.
Ist mir völlig neu. Wundert mich nur, dass mir das so nie untergekommen ist, da ich ja jede Menge UDT's einsetze. Was mir allerdings auch schon passiert ist (zumindest soweit ich mich erinnere) - , dass nach dem Löschen einer Klasse UDT's plötzlich unbekannt waren. Nach einem Decompile war das Problem dann wieder weg.
Hatte ich aber schon ewige Zeiten nicht mehr - vielleicht weil ich in vba kaum noch was entwickle.
Zitat von: PhilS am Oktober 13, 2023, 12:09:40... aber es bedeutet sonst keine weiteren Probleme mit dem Code der Anwendung.
Also der Code sollte trotzdem laufen, oder wie?
OT: Mich wundern solche Themen immer etwas. Der Bitsqueezer hat z.B. ein Problem im Umgang mit Interfaces in VBA. Obwohl ich auch viele Interfaces verwende - nie ein Problem. Manche Probleme sind mir einfach schleierhaft.
@RSprotte, warum verwendest du eigentlich UDT's und keine Klassen?
Allen Danke für die Kommentare.
Das Programm läuft!
aber eigentlich liegen normalerweise die UDTs in deinem dezentralen Modul z.B Deklarationen ab.
Da wäre die Funktion zu hinspringen sehr hilfreich!
Ich werde alle mal ausprobieren!
Wieso verwende ich keine Klasse?
Gute Frage!
Die neue Version ist mit einer Klasse abgebildet!
Aber wenn ich eine Variable klassenspezifisch deklariere, ist das Problem nicht behoben.
Der Fehler tritt auch bei einer Klassenzuweisung auf!!
Dim adbprov As clsAvistaProvider
Dim lCENomStruct As tCENomenklatur
Beides wirft den gleichen Fehler.
Nochmals Danke an alle.
Eventuell fällt ja noch jemanden etwas ein!
Gruß RSprotte
Du hast meine Frage in #1 nicht beantwortet.
Hast du ein decompile durchgeführt?
Jetzt habe ich den decompile durchgeführt, aber ohne Erfolg. :(
Aber vielen Dank für den Hinweis