MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 15.09.2017, 15:14   #1
chbahn
MOF User
MOF User
Standard Acc2016 - Klassen Formular Zugriff

Was versuche ich:
Ich möchte eine Klasse definieren, bei der ich über Angaben von Werten einen TreeView einfach befüllen und bearbeiten kann.
Das Erstellen der Klasse ist nicht das Problem, sondern wie greife ich vom Formular auf die Klasse zu. Denn das aufrufen der Klasse erfolgt aus einem Modul heraus! Die Definition der Klasse erfolgt also im Modul. Aber wie kann ich aus der Formular auf diese Daten zugreifen, die ich im Modul der Klasse übergeben habe?
Oder kann ich in der Klasse Events definieren die sich auf das Formular beziehen?
Was habe ich bis jetzt?
Eine Klasse wo die wichtigsten Parameter benötigt werden bevor das Formular angezeigt wird! Das Formular wird in eine Variable geladen und anschließen angezeigt! Oder sollte man hier einen anderen Weg gehen?
Hier mein Entwurf der Klasse:
Code:

Option Compare Database

'Aufbau der Tabelle fürs Treeview
' ID (Autowert)
' Key wird Berechnet aus Feld ID und dem String strdbKZ
' ViewName beinhaltet den Wert der im Treeview angezeigt werden soll
' ParentKey veweist auf das Vaterobject

Dim strFormname As String           'Formular Name im Ramen
Dim strdbTable As String            'Name der Tabelle mit den Daten
Dim strdbFieldKey As String         'Feldname des Keys
Dim strdbFieldViewName As String    'Feldname zum Anzeigen im Treeview
Dim strdbParentKey As String        'Feldname des ParentKys
Dim strdbKZ                         'Wert der zum berechnen des Keys benötigt wird!

Dim objForm As Form

Property Let Formname(value As String)
    strFormname = value
End Property

Property Get Formname() As String
    Formname = strFormname
End Property

' Tabellenfunktionen
Property Let dbTable(value As String)
    strdbTable = value
End Property

Property Get dbTable() As String
    dbTable = strdbTable
End Property

Property Let dbFieldKey(value As String)
    strdbFieldKey = value
End Property

Property Get dbFieldKey() As String
    dbFieldKey = strdbFieldKey
End Property

Property Let dbFieldViewName(value As String)
    strdbFieldViewName = value
End Property

Property Get dbFieldViewName() As String
    dbFieldViewName = strdbFieldViewName
End Property

Property Let dbParentKey(value As String)
    strdbParentKey = value
End Property

Property Get dbParentKey() As String
    dbParentKey = strdbParentKey
End Property

Property Let dbKZ(value As String)
    strdbKZ = value
End Property

Property Get dbKZ() As String
    dbKZ = strdbKZ
End Property

Public Sub OpenTreeView()
    readData
End Sub

Public Sub readData()
    If CheckData = True Then
        With objForm
            .Caption = strFormname
            .ViewsAllowed = 1
            .Visible = True
            While CurrentProject.AllForms("FORM_TREEEDIT").IsLoaded = True
                DoEvents
            Wend
        End With
        'DoCmd.OpenForm "FORM_TREEEDIT", acNormal, , , , acDialog
    End If
End Sub

Private Function CheckData() As Boolean
    On Error GoTo CheckData_Error
    'Dim strFormname As String           'Formular Name im Ramen
    
    If Len(strdbTable) = 0 Or IsNull(strdbtabel) = True Then
        Err.Raise 1000 + vbObjectError, "dbTable", "TREEEDIT:Es wurde keine Tabelle angegeben!"
    End If
    If Len(strdbFieldKey) = 0 Or IsNull(strdbFieldKey) = True Then
        Err.Raise 1001 + vbObjectError, "dbTable", "TREEEDIT:Es wurde keine KEY Feld angegeben!"
    End If
    If Len(strdbFieldViewName) = 0 Or IsNull(strdbFieldViewName) = True Then
        Err.Raise 1002 + vbObjectError, "dbFieldViewName", "TREEEDIT:Es wurde keine Anzeigename angegeben!"
    End If
        If Len(strdbParentKey) = 0 Or IsNull(strdbParentKey) = True Then
        Err.Raise 1003 + vbObjectError, "dbParentKey", "TREEEDIT:Es wurde keine Feld ParentKey angegeben!"
    End If
        If Len(strdbKZ) = 0 Or IsNull(strdbKZ) = True Then
        Err.Raise 1004 + vbObjectError, "dbKZ", "TREEEDIT:Es wurde keine Kennzeichen angegeben!"
    End If
CheckData_Exit:
    CheckData = True
    Exit Function
CheckData_Error:
    MsgBox "Fehler-Nummer: " & Err.Number - vbojecterror & vbCrLf & "Fehler-Beschreibung: " & Err.Description, , Err.Source
End Function

Private Sub Class_Initialize()
    Set objForm = New Form_FORM_TREEEDIT
End Sub
Hier das Modul welche die Klasse aufruft:
Code:

Public Sub testtreeview()
    Dim objtree As New CLS_TREEDIT
    With objtree
        .Formname = "Abteilungen bearbeiten"
        .dbTable = "ABTEILUNGEN"
        .dbFieldKey = "ABTEILUNG_KEY"
        .dbFieldViewName = "ABTEILUNG_NAME"
        .dbParentKey = "ABTEILUNG_KEY_PARENT"
        .dbKZ = "ABT"
        .OpenTreeView
    End With
End Sub
Für Anregungen, Hilfestellungen jeder Art bin ich Dankbar.
Christian

__________________

"Programmers never die, they just GOSUB without RETURN"
chbahn ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.09.2017, 16:17   #2
Beaker s.a.
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,
Meine spontane Idee als KlassenNeuling, - verwende für objtree eine öffentliche Property.
gruss ekkehard

__________________

--
S.M.I.²L.E.
Beaker s.a. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.09.2017, 17:34   #3
sonic8
MOF Profi
MOF Profi
Standard

Zitat: von chbahn Beitrag anzeigen

...Denn das aufrufen der Klasse erfolgt aus einem Modul heraus! Die Definition der Klasse erfolgt also im Modul. Aber wie kann ich aus der Formular auf diese Daten zugreifen, die ich im Modul der Klasse übergeben habe?
Oder kann ich in der Klasse Events definieren die sich auf das Formular beziehen?

Ich glaub den obigen Teil solltest du nochmal etwas ausführlicher und konkreter beschreiben. Ich werde da nämlich nicht so ganz schlau draus.

Kann das Form eine Abhängigkeit von der Klassen haben? Dann könntest du in dem Form eine Property erstellen, die die Instanz der Klasse referenziert. Damit hättest du im Formular eine Zugriffsmöglichkeit auf die Klasse.
sonic8 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.09.2017, 10:05   #4
chbahn
Threadstarter Threadstarter
MOF User
MOF User
Standard

Danke für eure Infos! Werde das mal testen und mich später wieder melden.

__________________

"Programmers never die, they just GOSUB without RETURN"
chbahn ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.