Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Checkbox liste aus relationaler Datenbank

Mitglied: Peak

Peak (Level 1) - Jetzt verbinden

14.04.2010 um 17:42 Uhr, 6831 Aufrufe, 10 Kommentare

Checkboxliste in einem Unterformular aus einer relationaler Datenbank erstellen, so dass sichtbar ist, welche Werte aktiv sind und welche nicht.

Hallo zusammen.

Folgende Situation:
Eine Accessdatenbank mit drei Tabellen die wie folgt aufgebaut sind.

tblAdresse (Tabelle für alle Adressen)
adr_ID
adr_Name
adr_ Vorname
adr_Strasse
adr_PLZ
....

tblGruppen (Gruppen, in die die adressen aus tblAdressen aufgeteilt werden können.
grp_ID
grp_Text

tblAdrGrp
FID_adr
FID_grp

Das Ziel der ganzen Übung ist, dass eine Adresse eingegeben kann, welcher dann noch Gruppen (Lieferant, Kunde,... ) zugeteilt werden können.

Als müsste ich eigentlich ein Formular für die Adresse haben. In dem Formular müsste dann ein Unterformular sein, mit den Gruppen. Und genau da komme ich nicht weiter.

Ich möchte, dass alle vorhanden Gruppen aus der tblGruppen als checkbox im Formular der Adresse sichtbar sind. Wenn eine vorhandene Adresse im Formular geöffnet wird, dann soll das Unterformular mit den Gruppen auch alle verfügbaren Gruppen anzeigen. Jedoch aber die Adresse/Gruppen kombinationen welche schon in der tblAdrGrp eingetragen sind, als checked markieren. Nur wie macht man das? Wäre toll, wenn mir da jemand weiter helfen könnte.

Ich hoffe, dass ich mich verständlich ausdrücken konnte und danke euch schon im Voraus,
Steff
Mitglied: Peak
15.04.2010 um 10:10 Uhr
Hmm. Ich weiss nicht ob es unverständlich war, was ich geschriben habe, oder ob wirklich bis jetzt niemand eine Lösung oder einen Lösungsansatz hat.

Falls etwas unklar sein sollte, werde ich gerne die Fragen beantworten.

Gruss,
Steff
Bitte warten ..
Mitglied: jato11
15.04.2010 um 13:12 Uhr
Hallo Steff,
ich bin mir nicht sicher, ob ich dich richtig verstanden habe.
Du willst in einer Tabelle Gruppennamen eintragen (grp_Text), das würde bedeuten du hast bei fünf Gruppen
auch fünf Datensätze.
Nun möchtest du für jede Gruppe ein Kontrollkästchen im Formular darstellen. Das geht nicht.

Du kannst für jede Gruppe in der Tabelle ein Feld (Kontrollkästchen) erstellen. Also bei fünf Gruppen auch fünf Felder.
Wenn dann eine weitere Gruppe dazu kommt muss die Tabelle, das Formular und evtl. die Abfrage angepasst werden.

Du kannst es auch mit einem Kobinationsfeld lösen. Damit bist du flexibel und kannst jederzeit im Formular Gruppen zufügen.
Der Nachteil ist wenn jemand in mehrere Gruppen eingtragen werden soll, dann brauchst du in der Gruppentabelle auch
mehrere Felder.

Viele Grüße
Torsten
Bitte warten ..
Mitglied: Peak
15.04.2010 um 13:24 Uhr
Hallo Torsten.

Danke erst mal für deine Antwort. Ich habe mir schon gedacht, dass das nicht ganz einfach werden wird. Meine Idee war folgende.

Ich mache ein Formular um die Adressen eingeben zu können, bzw. dann auch bearbeiten zu können. Das ist so weit ja noch nichts besonderes.
In diesem Adressformular wird dann ein Unterformular eingebunden. In diesem Unterformular werden, per VBA, aus der tblGrp alle Gruppen ausgelesen und, auch per VBA, eine Checkbox gemacht. Bevor diese Checkbox gemacht wird, muss in der tblAdrGrp überprüft werden, ob die Kombination adr_ID/grp_ID vorhanden ist. Wenn diese vorhanden ist, dann soll eine Checkbox gemacht werden, welche bereits selektiert ist. Wenn nicht, dann halt eine Checkbox die noch nicht ausgewählt ist.
In HTML und PHP wüsste ich wie ich das machen könnte. Aber leider nicht in Access. Zudem muss dann wahrscheinlich ja auch noch sicher gestellt werden, dass bei einer Änderung der Checkbox, die Änderung auch in die tblAdrGrp übertragen wird.

Deine Idee mit dem Kombinationsfeld ist sicherlich eine Überlegung wert. Das könnte dann auch per Unterformular eingebunden werden und dann könnte man auch mehrere Gruppen auswählen. Das Problem bei dieser Lösung ist halt, dass das Abwählen einer Gruppe nicht ganz so komfortabel ist wie mit Checkboxen.

Viele Grüsse
Steff
Bitte warten ..
Mitglied: jato11
15.04.2010 um 21:53 Uhr
Hallo Steff,
wenn es nur ein paar Gruppen wie Kunde, Lieferant, Privat, Geschäftlich o.ä. ist würde ich die Checkbox nehmen und
für jede Gruppe eine in der Tabelle erstellen. So mache ich es in meiner Kundenverwaltung.
Beim Kombinationsfeld kannst du eine Gruppe "Keine" erstellen und schon gehörst du keiner Gruppe an.
Das würde bei mir aber nicht vorkommen, denn in irgendeine Gruppe passen die Adressen immer.

Viele Grüße
Torsten
Bitte warten ..
Mitglied: Peak
17.04.2010 um 10:30 Uhr
Hallo Torsten,
Wie meinst du das mit den Checkboxen genau? Kannst du mir das ein bischen genauer erklären?

Vielen Dank,
Steff
Bitte warten ..
Mitglied: jato11
19.04.2010 um 12:01 Uhr
Wie meinst du das mit den Checkboxen genau? Kannst du mir das ein bischen genauer erklären?

Hallo Steff
In der Tabelle erstellt du ein ja/nein Feld fürt jede Gruppe (eins für Kunden und eins für Lieferanten usw.)

Wenn dein Formular als Datenquelle eine Abfrage hat musst du auch da die Felder übernehmen und
anschließend im Formular dann für jede Gruppe ein Kontrollkästchen erstellen.

Nun kannst du einer Person oder Firma eine Gruppe zuordnen, indem du einfach auf das Kästchen klickst.
Mehrfachauswahl ist natürlich möglich.

Wenn du eine Telefonliste o.ä. erstellen möchtest, trägst du in deiner Abfrage bei z.B. Kunden im Kriterium "-1" ein
Dann werden alle angezeigt die zur Gruppe Kunden gehören bzw. in dem Kästchen einen Haken haben

Viele Grüße
Torsten
Bitte warten ..
Mitglied: Peak
21.04.2010 um 10:20 Uhr
Gelöst :D

Nach langem überlegen und hin und her was und wie ich das nun machen soll, habe ich jetzt eine, bis jetzt funktionierende Lösung.

Als erstes wird die listbox mit den Daten aus der tblGroups gefüllt. Dann werden per VBA alle Einträge abgewählt. Dann wird für jeden eintrag überprüft ob die Kombination adr_ID / grp_ID in der Tabelle tblAdrGrp vorhanden ist. Wenn ja, dann als selected markieren.

Beim Wechsel auf den nächsten Datensatz werden zuerst alle Einträge in der tblAdrGrp mit der entsprechenden adr_ID gelöscht und anschliessend für jeden ausgewählten Eintrag in der Listbox einen neuen Eintrag in tblAdrGrp gemacht.

Das ganze scheint bis jetzt zu funktionieren.

Wenn jemand interesse am VBA Code haben sollte, werde ich den gerne zu Verfügung stellen.


Eine Frage habe ich dazu aber noch. Wenn ich nun auf den nächsten Datensatz wechsle und es im aktuellen Datensatz Änderungen gegeben hat, wird der Benutzer darauf aufmerksam gemacht, dass er Datensätze in der Tabelle löschen, bzw. hinzufügen möchte. Kann man dies irgend wie umgehen?

Danke viel mal
Gruss, Steff
Bitte warten ..
Mitglied: jato11
21.04.2010 um 10:32 Uhr
Prima
stell den Code ruhig hier rein, dann können andere das vielleicht auch nutzen.

Unter Optionen kannst du einstellen wann Access meckert.

Viele Grüße
Torsten
Bitte warten ..
Mitglied: Peak
21.04.2010 um 10:42 Uhr
Hier dann also noch den Code

Private Sub Form_AfterUpdate()
    'MsgBox "after update"
    
    'MsgBox "Form After Insert - adrID: " & Me.adr_ID

    Dim rs As Recordset
    Dim strSQL As String
    
    'zuerst alle Einträge in tblAdresseAdrGroup mit der adr_FID löschen
    strSQL = "DELETE * FROM tblAdresseAdrGroup WHERE adrAdrGrp_adr_FID = " & Me.adr_ID
    DoCmd.RunSQL strSQL

    'für jeden eintrag in der lstGrp prüfen, ob selektiert. Wenn ja, dann neuer eintrag in tblAdresseAdrGroup
    For i = 0 To Me.lstGrp.ListCount - 1
        'MsgBox lstGrp.Column(0, i) & " - " & lstGrp.Selected(i) '-1 = selected / 0 = unselected

        If lstGrp.Selected(i) = -1 Then
            'MsgBox "Selected: " & lstGrp.Column(0, i) & " - " & lstGrp.Column(1, i)
            strSQL = "INSERT INTO tblAdresseAdrGroup (adrAdrGrp_adr_FID, adrAdrGrp_adrGrp_FID) VALUES (" & Me.adr_ID & ", " & Me.lstGrp.Column(0, i) & ")"
            DoCmd.RunSQL strSQL
        End If


    Next i
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
    'wenn etwas geändert hat, wird adr_LastChange auf jetzt gesetzt
    Me.adr_LastChange.Value = DateValue(Now) & " " & TimeValue(Now)
End Sub

Private Sub Form_Current()
    'Me.adr_LastChange.Value = DateValue(Now) & " " & TimeValue(Now)
    
    Dim rs As Recordset
    Dim strSQL As String
    
    'Alle Elemente in der Listbox deaktivieren
    For i = 0 To lstGrp.ListCount - 1
        lstGrp.Selected(i) = False
    Next i
    
    'Auslesen der kombis die in Ausgleichstabelle tblAdresseAdrGroup sind
    If adr_ID <> "" Then
        strSQL = "SELECT * FROM tblAdresseAdrGroup WHERE adrAdrGrp_adr_FID = " & Me.adr_ID
        Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
        
        'Vorselektion der bereits ausgewählten Gruppen
        Do While Not rs.EOF
            
            For i = 0 To lstGrp.ListCount - 1
                Dim lstGrpIndex As Integer
                Dim adrGrpFID As Integer
                
                lstGrpIndex = Me.lstGrp.Column(0, i)
                adrGrpFID = rs!adrAdrGrp_adrGrp_FID
                
                If lstGrpIndex = adrGrpFID Then
                    Me.lstGrp.Selected(i) = True
                End If
                
            Next i
            
            rs.MoveNext
        Loop
        
        rs.Close
        Set rs = Nothing
    End If
End Sub

Private Sub lstGrp_Click()
    'wenn in lstGrp etwas geändert wird, dann wird LastChange auf jetzt gesetzt
    Me.adr_LastChange.Value = DateValue(Now) & " " & TimeValue(Now)
End Sub
Bitte warten ..
Mitglied: NetWolf
21.04.2010 um 18:25 Uhr
Hallo,

ja kann man, schau dir mal die Grundeinstellungen von Access genau an. Genauere Hinweise leider nicht möglich, da du deine Version nicht mit angegeben hast.

Dein Problem hätte ich z.B. binär gelöst
Du speicherst den aktuellen Stand der Checkboxen in ein zusätzliches Feld pro Adresse z.B. mit den Werten : 010101
1 = gesetzt
0 = nicht gesetzt
über die MID Funktion ausgelesen, fertig.


Grüße aus Rostock
Wolfgang
(Netwolf)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Checkbox Event
gelöst Frage von Markus2016Batch & Shell11 Kommentare

Hallo zusammen, benötige mal wieder Eure Unterstützung. Über "value.Add_CheckStateChanged" bekomme ich beim Auswählen einer beliebigen Checkbox immer nur den ...

VB for Applications
Checkbox Value -4146 ??
gelöst Frage von AximandVB for Applications4 Kommentare

Moin zusammen. Folgender Code: Hier wird mir immer wieder -4146 ausgegeben, egal ob ich die Chebox mit Value = ...

Visual Studio
Checkbox bei Office-Ribbons
Frage von MarcoBornVisual Studio9 Kommentare

Hallo Forum, ich habe in Excel ein Ribbon mit einer Checkbox angelegt. Jetzt möchte ich durch eine Prozedur oder ...

Batch & Shell
Powershell xlsm checkbox abfragen
gelöst Frage von H41mSh1C0RBatch & Shell6 Kommentare

Aloa in die Runde, ich habe hier einen Berg xlsm Dateien. Alle sind als Formular verbastelt und enthalten mehrere ...

Neue Wissensbeiträge
Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 1 TagInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 2 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 4 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Sicherheit

Wikileaks-Gründer Julian Assange wurde festgenommen

Information von Frank vor 7 TagenSicherheit3 Kommentare

Wikileaks-Gründer Julian Assange wurde heute in London festgenommen. Die Botschaft Ecuadors, in der er seit sieben Jahren lebte, hat ...

Heiß diskutierte Inhalte
Tipps & Tricks
Verdammt voll erwischt
Frage von AlchimedesTipps & Tricks23 Kommentare

Folgende Mail habe ich auf meinem Freenet Account erhalten: Nun folgendes Problem: 1) Ich besuche Porno Seiten yep hat ...

Drucker und Scanner
Xerox 7328 muss jeden Tag neu installert werden
Frage von PN-SchrauberDrucker und Scanner20 Kommentare

hallo, ich habe in Problem mit einem unserer Drucker. Vorweg, die meisten unserer Netzwerkdrucker laufen über einen Druckserver, dieser ...

HTML
Google maps
Frage von jensgebkenHTML20 Kommentare

Hallo Gemeinschaft, hab mal ne Frage zu Maps - habe es hinbekommen, dass ich einen iframe link erstellen kann ...

Switche und Hubs
PC Verursach Probleme im Netzwerk
gelöst Frage von spoboeSwitche und Hubs16 Kommentare

Hallo zusammen, folgene Situation macht mich inzwischen ratlos: In unserem Betrieb ist ein Rechner über die Hausverkabelung an einem ...