Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Programmierte Kombinationsfelder
zurück: via VBA die Systemsprache anzeigen weiter: Webbrowser-Steuerelement URL abändern Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Schnuffelhase
Im Profil kannst Du frei den Rang ändern


Verfasst am:
20. Jul 2011, 12:23
Rufname:

Programmierte Kombinationsfelder - Programmierte Kombinationsfelder

Nach oben
       Version: Office 2003

Schnuffelhase am 19. Jul 2011 um 14:26 hat folgendes geschrieben:
Hallo liebe Forumsgemeinde,
ich hätte mal wieder eine Frage und ich hoffe ihr könnt mir dabei weiterhelfen.
Ich möchte ein Formular erstellen über welches Rekordwirkungsgrade von Solarzellen gespeichert werden sollen. Ein Rekordsolarzelle kann von einem Unternehmen oder einem Forschungsinstitut entwickelt werden. Deshalb habe ich eine Tabelle mit Unternehmen und eine mit Forschungsinstituten. Ist es möglich zwei Kombinationsfelder so zu programmieren dass nach Auswahl eines der Kombinationsfelder das andere ausgebleicht wird und nicht mehr geklickt werden kann?

Vielen dank für eure sicherlich wieder wunderbare Hilfe!

LG Schnuffelhase

Hi Leute,
ich hab jetzt mal folgenden Code erstellt um die Kombifelder zu sperren.
Im nach Aktualisierungseriegnis der Kombis habe ich folgenden Quellcode hinterlegt:
Code:
Private Sub cboRekordForsch_AfterUpdate()
  If Me.NewRecord Then
        Me!cboRekordSupplier.Locked = False
      Else
        Me!cboRekordSupplier.Locked = Not IsNull(Me!cboRekordForsch)
    End If
End Sub

Private Sub cboRekordSupplier_AfterUpdate()
  If Me.NewRecord Then
        Me!cboRekordForsch.Locked = False
      Else
        Me!cboRekordForsch.Locked = Not IsNull(Me!cboRekordSupplier)
    End If
End Sub
Leider stimmt hier noch etwas nicht denn wenn ich das eine Feld ausgewählt habe kann ich immer noch das andere Feld auswählen. Hat jemand eine Ahnung woran das liegen könnte?

Gruß Schnuffelhase
Marmeladenglas
komme zurecht


Verfasst am:
20. Jul 2011, 12:37
Rufname:


AW: Programmierte Kombinationsfelder - AW: Programmierte Kombinationsfelder

Nach oben
       Version: Office 2003

Hi,
du kannst zwar das Kombifeld aufklappen, aber keinen Wert wählen.
Schnuffelhase
Im Profil kannst Du frei den Rang ändern


Verfasst am:
20. Jul 2011, 13:24
Rufname:

AW: Programmierte Kombinationsfelder - AW: Programmierte Kombinationsfelder

Nach oben
       Version: Office 2003

Hi Marmeladenglas,
doch ich kann einen Wert oder besser gesagt zwei Werte auswählen und das soll der Code ja eigentlich verhindern. Macht er aber leider nicht!
Korben
Learning by Doing


Verfasst am:
20. Jul 2011, 13:52
Rufname: Thomas

AW: Programmierte Kombinationsfelder - AW: Programmierte Kombinationsfelder

Nach oben
       Version: Office 2003

Hallo,
wenn ich mich einmischen darf.
Wäre das OnCurrent-Ereignis des Formulars nicht besser geeignet?
Code:
Private Sub Form_Current()
    Me!cboRekordSupplier.Locked = Not IsNull(Me!cboRekordForsch)
    Me!cboRekordForsch.Locked = Not IsNull(Me!cboRekordSupplier)
End Sub

' oder alternativ:
Private Sub Form_Current()
    Me!cboRekordSupplier.Enabled = Not IsNull(Me!cboRekordForsch)
    Me!cboRekordForsch.Enabled = Not IsNull(Me!cboRekordSupplier)
End Sub

_________________
Mit freundlichen Grüßen Korben
***Rechtschreibfähler sind special effects meiner Tastatur! Wink***
Marmeladenglas
komme zurecht


Verfasst am:
20. Jul 2011, 14:16
Rufname:


AW: Programmierte Kombinationsfelder - AW: Programmierte Kombinationsfelder

Nach oben
       Version: Office 2003

@Korben:
beide Ereignisse sind zu berücksichtigen, sowohl das AfterUpdate als auch das Current.
@Schnuffel:
ich habe das mal nachgebaut, die Erstversion deines Codes ist bei mir unproblematisch, soll heißen funktioniert.
Hast du geschaut, ob die Ereignisprozedur ausgeführt wird ? DEbuggen mit Haltepunkt .
Schnuffelhase
Im Profil kannst Du frei den Rang ändern


Verfasst am:
21. Jul 2011, 08:26
Rufname:

AW: Programmierte Kombinationsfelder - AW: Programmierte Kombinationsfelder

Nach oben
       Version: Office 2003

Schnuffelhase am 20. Jul 2011 um 14:32 hat folgendes geschrieben:
Hi,
wo muss ich denn den Haltepunkt da setzen?
Wenn ich den Quellcode ganz normal Kompiliere zeigt er mir keine Fehler an. Ich habe das Current Ereignis jetzt auch noch aufgenommen in den Quelltext:
Code:
Private Sub Form_Current()
    Me!cboRekordSupplier.Locked = Not IsNull(Me!cboRekordForsch)
    Me!cboRekordForsch.Locked = Not IsNull(Me!cboRekordSupplier)
End Sub

Private Sub cboRekordForsch_AfterUpdate()
  If Me.NewRecord Then
        Me!cboRekordSupplier.Locked = False
      Else
        Me!cboRekordSupplier.Locked = Not IsNull(Me!cboRekordForsch)
    End If
End Sub

Private Sub cboRekordSupplier_AfterUpdate()
  If Me.NewRecord Then
        Me!cboRekordForsch.Locked = False
      Else
        Me!cboRekordForsch.Locked = Not IsNull(Me!cboRekordSupplier)
    End If
End Sub
Wirklich was geändert hat sich aber nicht!

Kann es daran liegen dass ich die Automatische Speicherung unterdrücke und nur per Button gespeichert wird?

Hi Leute,
also mein Problem besteht immer noch!
Hab das Formular auch mal teilweise nachgebaut da hat der Quellcode das getan was er soll. Könnte vielleicht mal jemand einen Blick auf mein Formular werfen und mir eventuell sagen wieso ich die Kombinationsfelder nicht sperren kann? Das wäre super!

LG Schnuffelhase



Solarzellenüberblick.zip
 Beschreibung:
Hier die DB

Download
 Dateiname:  Solarzellenüberblick.zip
 Dateigröße:  294.04 KB
 Heruntergeladen:  12 mal

MissPh!
Office-VBA-Programmiererin


Verfasst am:
21. Jul 2011, 15:48
Rufname:
Wohnort: NRW

AW: Programmierte Kombinationsfelder - AW: Programmierte Kombinationsfelder

Nach oben
       Version: Office 2003

Hallo,

das Formular wird zur Datenerfassung geöffnet, da ist also Me.Newrecord immer True und dann wird nichts gesperrt.

_________________
Gruß MissPh!
Schnuffelhase
Im Profil kannst Du frei den Rang ändern


Verfasst am:
21. Jul 2011, 16:26
Rufname:

AW: Programmierte Kombinationsfelder - AW: Programmierte Kombinationsfelder

Nach oben
       Version: Office 2003

Hi MissPh,
vielen dank für die Hilfe.
Werde mein Formular deinen Anmerkungen entsprechend anpassen.

Grüße Schnuffelhase
Nouba
nicht ganz unwissend :)


Verfasst am:
21. Jul 2011, 19:21
Rufname:
Wohnort: Berlin


AW: Programmierte Kombinationsfelder - AW: Programmierte Kombinationsfelder

Nach oben
       Version: Office 2003

Hallo,

ich würde keines der beiden Kombifelder sperren, sondern in deren Vor Aktualisierung Ereignissen prüfen, ob jeweils im Anderen eine Auswahl getroffen wurde und dann den Benutzer entscheiden lassen, welches einen Eintrag erhalten soll.
Code:
Option Compare Database
Option Explicit

Private blnsichern As Boolean

Private Function fncPruefen() As Boolean
  Dim strErrMsg() As String, _
      lngErrCount As Long

  ReDim strErrMsg(1 To 9)

  If Not ((IsNumeric(Me.RekordEinrichtungsName) And _
           IsNull(Me.RekordSupplierName)) Or _
           (IsNull(Me.RekordEinrichtungsName) And _
            IsNumeric(Me.RekordSupplierName))) Then
    lngErrCount = lngErrCount + 1
    strErrMsg(lngErrCount) = lngErrCount & ". Es muss entwerder ein Forschungslabor " & _
                             "oder ein Unternehmen ausgewählt sein."
  End If

  If IsNull(Me.RekordmodulName) Then
    lngErrCount = lngErrCount + 1
    strErrMsg(lngErrCount) = lngErrCount & ". Es wurde kein Modulname angegeben."
  End If

  If IsNull(Me.cboCellTypeName) Then
    lngErrCount = lngErrCount + 1
    strErrMsg(lngErrCount) = lngErrCount & ". Es wurde kein Produktionstyp ausgewählt."
  End If

  If IsNull(Me!cboProduktionstyp) Then
    lngErrCount = lngErrCount + 1
    strErrMsg(lngErrCount) = lngErrCount & ". Es wurde kein Produktionstyp ausgewählt."
  End If

  If IsNull(Me!RekordmodulVeroeffentlichungsdatum) Then
    lngErrCount = lngErrCount + 1
    strErrMsg(lngErrCount) = lngErrCount & ". Es wurde kein Veröffentlichungsdatum angebeben."
  End If

  If Me!RekordmodulLength = 0 Then
    lngErrCount = lngErrCount + 1
    strErrMsg(lngErrCount) = lngErrCount & ". Es wurde keine Modullänge angegeben."
  End If

  If Me!RekordmodulWidth = 0 Then
    lngErrCount = lngErrCount + 1
    strErrMsg(lngErrCount) = lngErrCount & ". Es wurde keine Modulbreite angegeben."
  End If

  If Me!RekordmodulApartureArea = 0 Then
    lngErrCount = lngErrCount + 1
    strErrMsg(lngErrCount) = lngErrCount & ". Es wurde keine Apature Area angegeben."
  End If

  If Me!RekordmodulEta = 0 Then
    lngErrCount = lngErrCount + 1
    strErrMsg(lngErrCount) = lngErrCount & ". Es wurde kein Eta angegeben."
  End If

  fncPruefen = lngErrCount = 0

  If lngErrCount > 0 Then
    ReDim Preserve strErrMsg(1 To lngErrCount)
    MsgBox "Es gibt " & lngErrCount & " Eingabefehler." & _
           vbCrLf & vbCrLf & Join(strErrMsg, vbCrLf)
  End If

End Function

Private Sub Form_Activate()
  On Error Resume Next
  DoCmd.Maximize
End Sub

Private Sub Form_AfterUpdate()
  MsgBox "New Record Module is stored", _
         vbOKOnly Or vbInformation, "Information"
  blnsichern = False
  Me.Requery
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
  Cancel = (Not blnsichern) Or (Not fncPruefen())
End Sub

Private Sub Form_Error(DataErr As Integer, Response As Integer)  '"bei Fehler"
  Response = acDataErrContinue
End Sub

Private Sub AddNewProductionTyp_Click()
  On Error GoTo Err_AddNewProductionTyp_Click

  DoCmd.OpenForm "frmAddProductionTyp"

Exit_AddNewProductionTyp_Click:
  Exit Sub

Err_AddNewProductionTyp_Click:
  MsgBox Err.Description
  Resume Exit_AddNewProductionTyp_Click

End Sub

Private Sub AddNewTechnologie_Click()
  On Error GoTo Err_AddNewTechnologie_Click

  DoCmd.OpenForm "frmCreateCelltype"

Exit_AddNewTechnologie_Click:
  Exit Sub

Err_AddNewTechnologie_Click:
  MsgBox Err.Description
  Resume Exit_AddNewTechnologie_Click

End Sub

Private Sub CloseFormCellType_Click()
  On Error GoTo Err_CloseFormCellType_Click

  DoCmd.OpenForm "frmRecordModuleOverview"
  DoCmd.Close Me.Name

Exit_CloseFormCellType_Click:
  Exit Sub

Err_CloseFormCellType_Click:
  MsgBox Err.Description
  Resume Exit_CloseFormCellType_Click
End Sub

Private Sub RekordEinrichtungsName_BeforeUpdate(Cancel As Integer)
  If IsNumeric(Me.RekordSupplierName) Then
    If IsNumeric(Me.RekordEinrichtungsName) Then
      If MsgBox("Es darf nur eine Einrichtung oder ein Lieferant " & _
                "eingetragen werden." & vbCrLf & vbCrLf & _
                "Wollen Sie den Eintrag in Lieferant löschen?", _
                vbYesNo Or vbDefaultButton1 Or vbQuestion, _
                "Validation Conflict") = vbYes Then
        Me.RekordSupplierName = Null
      Else
        Me.RekordEinrichtungsName.Undo
        Cancel = True
      End If
    End If
  End If
End Sub

Private Sub RekordSupplierName_BeforeUpdate(Cancel As Integer)
  If IsNumeric(Me.RekordEinrichtungsName) Then
    If IsNumeric(Me.RekordSupplierName) Then
      If MsgBox("Es darf nur eine Einrichtung oder ein Lieferant " & _
                "eingetragen werden." & vbCrLf & vbCrLf & _
                "Wollen Sie den Eintrag in Einrichtung löschen?", _
                vbYesNo Or vbDefaultButton1 Or vbQuestion, _
                "Validation Conflict") = vbYes Then
        Me.RekordEinrichtungsName = Null
      Else
        Me.RekordSupplierName.Undo
        Cancel = True
      End If
    End If
  End If
End Sub

Private Sub RekordmodulName_BeforeUpdate(Cancel As Integer)
  On Error GoTo RekordmodulName_BeforeUpdate_Error

  With DBEngine(0)(0).CreateQueryDef(vbNullString)

    .SQL = "SELECT Null FROM tabRekordmodul" & _
           " WHERE RekordmodulName = [:RMN];"
    .Parameters(":RMN") = Me.RekordmodulName

    With .OpenRecordset(dbOpenDynaset, dbForwardOnly)
      If .RecordCount > 0 Then
        MsgBox Me!RekordmodulName & " gibt es bereits.", _
               vbOKOnly Or vbInformation, "Duplicate!"
        Me.RekordmodulName.Undo
        Cancel = True
      End If
      .Close

    End With

  End With

Exit_RekordmodulName_BeforeUpdate:
  On Error GoTo 0
  Exit Sub

RekordmodulName_BeforeUpdate_Error:
  MsgBox Err.Description
  Resume Exit_RekordmodulName_BeforeUpdate
End Sub

Private Sub RekordReset_Click()
  On Error GoTo Err_RekordReset_Click

  Me.Undo

Exit_RekordReset_Click:
  Exit Sub

Err_RekordReset_Click:
  MsgBox Err.Description
  Resume Exit_RekordReset_Click

End Sub

Private Sub SaveRecordModule_Click()
  On Error GoTo Err_SaveRecordModule_Click

  If Me.Dirty Then Me.Dirty = False

Exit_SaveRecordModule_Click:
  Exit Sub

Err_SaveRecordModule_Click:
  MsgBox Err.Description
  Resume Exit_SaveRecordModule_Click
End Sub

BTW: in jeden Modulkopf gehört Option Explicit - dann findest Du beim Kompilieren weitere Fehler.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Kombinationsfelder funktionieren nicht 3 chris4life 309 28. Apr 2012, 08:23
Willi Wipp Kombinationsfelder funktionieren nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Kombinationsfelder per Makro voneinander abhängig machen 12 master_t 1237 19. Nov 2010, 10:12
master_t Kombinationsfelder per Makro voneinander abhängig machen
Keine neuen Beiträge Access Tabellen & Abfragen: Voneinander Abhängige Kombinationsfelder mit Mehrfachauswahl 3 Xia0 2466 20. Nov 2009, 14:44
MissPh! Voneinander Abhängige Kombinationsfelder mit Mehrfachauswahl
Keine neuen Beiträge Access Tabellen & Abfragen: Abhänige Kombinationsfelder. Hilfe! 1 Toffel84 405 04. März 2009, 01:44
Willi Wipp Abhänige Kombinationsfelder. Hilfe!
Keine neuen Beiträge Access Tabellen & Abfragen: Wie verbinde ich Kombinationsfelder 1 derschlager 690 19. Feb 2007, 12:42
blicki Wie verbinde ich Kombinationsfelder
Keine neuen Beiträge Access Formulare: Problem mit Kombinationsfelder 1 Mirage 478 27. Jun 2006, 17:27
rita2008 Problem mit Kombinationsfelder
Keine neuen Beiträge Access Formulare: Kombinationsfelder und Textfelder 7 Alisa 704 26. Jun 2006, 14:19
Willi Wipp Kombinationsfelder und Textfelder
Keine neuen Beiträge Access Formulare: Abhängige Kombinationsfelder Daten aus einer Tabelle 1 Maeuschen 1092 25. Apr 2006, 12:18
lothi Abhängige Kombinationsfelder Daten aus einer Tabelle
Keine neuen Beiträge Access Formulare: abhängige kombinationsfelder verlieren Daten 9 Kathrin2 905 09. Apr 2006, 22:25
Kathrin2 abhängige kombinationsfelder verlieren Daten
Keine neuen Beiträge Access Formulare: abhängige Kombinationsfelder: 1 K. von 2 K. abhängig machen 3 Yosrea 1327 08. Dez 2005, 14:25
Willi Wipp abhängige Kombinationsfelder: 1 K. von 2 K. abhängig machen
Keine neuen Beiträge Access Formulare: Kombinationsfelder 4 Kai_Syke 693 15. Nov 2005, 16:24
Kai_Syke Kombinationsfelder
Keine neuen Beiträge Access Formulare: bei abhängigen Kombinationsfelder das zweite zurücksetzen? 8 GAST SOS 779 23. Sep 2005, 14:11
GAST SOS bei abhängigen Kombinationsfelder das zweite zurücksetzen?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Word Serienbriefe