Neuigkeiten:

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

Mobiles Hauptmenü

Error bei Verweis auf Datentyp Deklaration via Kontext-Menüpunkt "Definition"

Begonnen von RSprotte, Oktober 13, 2023, 09:21:40

⏪ vorheriges - nächstes ⏩

RSprotte

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




markusxy


PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

markusxy

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.

markusxy


RSprotte

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







markusxy

Du hast meine Frage in #1 nicht beantwortet.
Hast du ein decompile durchgeführt?

RSprotte

Jetzt habe ich den decompile durchgeführt, aber ohne Erfolg.  :(

Aber vielen Dank für den Hinweis