Office: (Office 365) TextBoxen in UserForm füllen

Helfe beim Thema TextBoxen in UserForm füllen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi Detlef, also irgendwie verstehe ich jetzt leider nicht so richtig, was ich wo machen soll. Du hast ja sehr viel Code - um welche Prozeduren in... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von DetBarr2, 6. April 2022.

  1. Beverly
    Beverly Erfahrener User

    TextBoxen in UserForm füllen


    Hi Detlef,

    also irgendwie verstehe ich jetzt leider nicht so richtig, was ich wo machen soll. Du hast ja sehr viel Code - um welche Prozeduren in welchen Codemodulen also handelt es sich und was genau sollen sie machen bzw. worin besteht das Problem damit?



    TextBoxen in UserForm füllen GrußformelTextBoxen in UserForm füllen Beverly's Excel - Inn
     
    Beverly, 10. April 2022
    #16
  2. DetBarr2 Neuer User
    Hallo Karin,

    es ist halt nicht einfach Dir das zu erklären, werde es aber versuchen verständlich zu machen. Eine Frage vorweg, kennst Du Dich vieleicht auch in Access aus, dann würde ich die DatenBank mal hochladen, Du müsstest dann nur den Pfand im Modul Accessverbindungen ändern, dadurch würden dann auch fast alle Funktionen, des Projektes gegeben sein.

    So es sind viele Codes ich weiss und vieles habe ich durch Hilfe und Probieren herausgefunden und zum Laufen gebracht.
    Hier wird die Verbindung zur DatenBank aufgebaut und die in die Tabelle übernommen(Teilcode Modul Accessverbindung). "Where Status = 1", ist die 1 welche in Spalte F der Tabelle steht und ist gleich dem Wert mit der Bezeichnung Status in der Accessdatenbank.


    Code:
    Function ListOffeneBestellungen() As Variant
            
        Call DeclareVariables
            
        Set Conn = CreateObject("ADODB.Connection")
        Set DataSet = CreateObject("ADODB.recordset")
        
        Dim TempString As String
        
        QueryString = "SELECT * FROM ((Bestellungen" & _
                      " LEFT JOIN Packsaetze ON Bestellungen.ID_Packsatz = Packsaetze.ID)" & _
                      " LEFT JOIN Anlagen ON Bestellungen.ID_Abteilung = Anlagen.ID)" & _
                      " WHERE Status = 1"
        
        Conn.Open ConnectionString
        DataSet.Open QueryString, Conn
        
        Cells(1, 1).CopyFromRecordset DataSet
        
        DataSet.Close
        Conn.Close
    
    End Function

    In der BestellungsForm steht unter anderem folgender Code:

    Code:
    Private Sub BestaetigenBt_Click()
        
        If Me.AbteilungBox.Value = vbNullString Then
            MsgBox "Bitte Abteilung eingebben!"
            Exit Sub
        End If
        
        If Me.Packsaetze_Abteilung_List.Value = vbNullString Then
            MsgBox "Bitte Packsaetz wählen!"
            Exit Sub
        End If
        
        If Me.Menge.Value = vbNullString Then
            MsgBox "Bitte Menge eingebben!"
            Exit Sub
        End If
        
        'Gultig des Datums prüfen // beispielhaft
            Dim Temp_Date  As Date
            
            'Wenn leer
            If Me.Datum_Benoetigt.Value = vbNullString Then
                MsgBox "Bitte Benoetigt Datum eingebben!"
                Exit Sub
            Else
                If UBound(Split(Me.Datum_Benoetigt.Value, ".")) = 2 Then
                    If Len(Split(Me.Datum_Benoetigt.Value, ".")(2)) = 4 Then
    '                    Temp_Date = DateSerial(Split(Me.Datum_Benoetigt.Value, ".")(2), Split(Me.Datum_Benoetigt.Value, ".")(1), Split(Me.Datum_Benoetigt.Value, ".")(0)) ' + TimeSerial(Split(Me.Zeit_Benoetigt.Value, ":")(0), Split(Me.Zeit_Benoetigt.Value, ":")(1), 0)
    '
    '                    If Temp_Date >= Now() Then
    '
    '                    Else
    '                        MsgBox "Datum muss in der Zukunft sein!"
    '                    End If
                    Else
                        MsgBox "Ungultiges Jahr!"
                    End If
                Else
                    MsgBox "Ungultiges Datum!"
                    Exit Sub
                End If
            End If
        
        'Gultig des Datums prüfen
        If Me.Zeit_Benoetigt.Value = vbNullString Then
            MsgBox "Bitte Benoetigt Uhrzeit eingebben!"
            Exit Sub
        End If
        
        Dim TempAbteilung, TempPacksatz, TempStatus As String
            
        TempAbteilung = Abteilung_ID(Me.AbteilungBox.Value)
        TempPacksatz = Packsatz_ID(Me.Packsaetze_Abteilung_List.Value)
        TempStatus = 1
        
        Set Conn = CreateObject("ADODB.Connection")
        Set DataSet = CreateObject("ADODB.recordset")
        Conn.Open ConnectionString
        
        Dim SQL_Date_Time_BestellDatum, SQL_Date_Time_BenoetigtDatum As String
        Dim Date_Time_Value  As Date
    
    
        
        Date_Time_Value = Now()
        
        'Datum format für SQL "#YYYY/MM/DD HH:MM:SS#"
        
            'Date_Time_Value_BestellDatum = "#" & Format(TimeStamp, "MM-dd-yyyy hh:mm:ss") & "#"
            
            Date_Time_Value_BestellDatum = "#" & Year(Date_Time_Value) & "/" & _
                                            Format(Month(Date_Time_Value), "00") & "/" & _
                                            Format(Day(Date_Time_Value), "00") & " " & _
                                            Format(Hour(Date_Time_Value), "00") & ":" & _
                                            Format(Minute(Date_Time_Value), "00") & ":" & _
                                            Format(Second(Date_Time_Value), "00") & _
                                            "#"
        
        'Datum format für SQL "#YYYY/MM/DD HH:MM:SS#"
            Date_Time_Value = DateSerial(Split(Me.Datum_Benoetigt.Value, ".")(2), Split(Me.Datum_Benoetigt.Value, ".")(1), Split(Me.Datum_Benoetigt.Value, ".")(0)) + TimeSerial(Split(Me.Zeit_Benoetigt.Value, ":")(0), Split(Me.Zeit_Benoetigt.Value, ":")(1), 0)
            SQL_Date_Time_BenoetigtDatum = "#" & Year(Date_Time_Value) & "/" & _
                                            Format(Month(Date_Time_Value), "00") & "/" & _
                                            Format(Day(Date_Time_Value), "00") & " " & _
                                            Format(Hour(Date_Time_Value), "00") & ":" & _
                                            Format(Minute(Date_Time_Value), "00") & ":" & _
                                            Format(Second(Date_Time_Value), "00") & _
                                            "#"
    
                                            
        QueryString = "INSERT INTO Bestellungen (Datum_Bestellt,ID_Packsatz,Datum_Benotigt,Anzahl,Status,ID_Abteilung) " & _
                      "VALUES (" & Date_Time_Value_BestellDatum & "," & TempPacksatz & "," & SQL_Date_Time_BenoetigtDatum & "," & Me.Menge.Value & "," & TempStatus & "," & TempAbteilung & ")"
    
        
        Conn.Execute QueryString
        Conn.Close
        
        Cells.ClearContents
        Dim TempList As Variant
        TempList = ListOffeneBestellungen
        
        
        Call ListOffeneBestellungen
        
        Unload Me
        
    End Sub

    Der blaue Code wird in Spalte B und der grüne in Spalte D der Tabelle angezeigt ( bitte den code in der BestellungsForm noch mal neu rein kopieren, da der grüne Teil in der Mappe fehlt).
    In der Tabelle ist in Spalte B und D nur die Datumsangabe zu sehen, ich brauche aber in in Spalte B das Datum und in Spalte D die nur die Zeit ohne Datum. Habe das nicht gebacken bekommen, den blauen und grünen Teil so anzupassen, deshalb fehlt auch der grüne Teil in der Mappe. Wenn Du auf Daten holen in der UserForm2 cllckst und dann in das Textfeld und danach in ein Textfeld mit Datumsangabe in der anderen Userform clickst, siehst Du dass hier Datum und Zeit vorhanden sind, hier soll aber nur die Zeit ohne Datum stehen.

    Das Andere was noch offen wäre, wenn überhaupt möglich, wenn die Daten über den Button daten holen angefordert werden, in der Tabelle in Spalte L das x automatisch in der jeweiligen Spalte der angeforderten Daten zu setzen .
    Habe die DatenBank mal mit hochgeladen

    Ich hoffe Du verstehst was ich meine.

    Viele Grüße
    Detlef
     
    DetBarr2, 10. April 2022
    #17
  3. Beverly
    Beverly Erfahrener User
    Hi Detlef,

    sorry, aber das klingt für einen Außenstehenden ziemlich konfus - welcher blaue und welcher grüne Code? Ich verstehe jetzt leider überhaupt nicht mehr was du eigentlich machen willst. Kannst du das mit WENIGEN Worten für jemanden, der dein Projekt nicht kennt erklären? Und bitte eins nach dem anderen und nicht mehrere Fragen gleichzeitig.

    Verstehe ich den Prozess richtig:

    1. die Exceltabelle ist temporär und wird immer wieder neu gefüllt, wobei bereits bearbeitete Daten ebenfalls erneut aus der Access-Datenbank geladen werden?
    2. aus der temporären Exceltabelle sollen die während der laufenden Sitzung bearbeiteten Daten am Ende der Sitzung fortlaufend ohne Mehrfachauflistung in ein extra Tabellenblatt übertragen werden?

    Generelle Fragen:
    - was bedeutet der Status "1" in Spalte F genau: kann man daran erkennen, ob dieser Datensatz bereits bearbeitet wurde? Falls nein: woran kann man es dann erkennen? Oder wird das in der Access-Datenbank überhaupt nicht dokumentiert?
    - was hat es nun plötzlich mit dem UserForm mit den Optionsfeldern auf sich?
    - wie oft werden die Daten aus der Access-Datenbank abgerufen: nur beim Öffnen der Arbeitsmappe oder auch (mehrfach) während der Sitzung?

    Das ist erstmal das was mir an Fragen/Problemen einfällt.


    TextBoxen in UserForm füllen GrußformelTextBoxen in UserForm füllen Beverly's Excel - Inn
     
    Beverly, 10. April 2022
    #18
    1 Person gefällt das.
  4. DetBarr2 Neuer User

    TextBoxen in UserForm füllen

    Hallo Katin ,

    Vielen Dank für Deine Rückmeldung.
    Ich wusste es, es kommt Wirrwar dabei raus. Ok ich nehme das Kneul so gut es gut mal auseinander.
    Von diesem Code hatte ich den oberen Teil (BestellDatum) die Schrift blau und den unteren Teil (DatumBenötig) grün
    eingefärbt. Leider wird das im Forum so nicht angezeigt, das meine ich mit Blau und Rot .

    Code:
    Date_Time_Value = Now()
        
        'Datum format für SQL "#YYYY/MM/DD HH:MM:SS#"
        
            'Date_Time_Value_BestellDatum = "#" & Format(TimeStamp, "MM-dd-yyyy hh:mm:ss") & "#"
            
            Date_Time_Value_BestellDatum = "#" & Year(Date_Time_Value) & "/" & _
                                            Format(Month(Date_Time_Value), "00") & "/" & _
                                            Format(Day(Date_Time_Value), "00") & " " & _
                                            Format(Hour(Date_Time_Value), "00") & ":" & _
                                            Format(Minute(Date_Time_Value), "00") & ":" & _
                                            Format(Second(Date_Time_Value), "00") & _
                                            "#"
        
        'Datum format für SQL "#YYYY/MM/DD HH:MM:SS#"
            Date_Time_Value = DateSerial(Split(Me.Datum_Benoetigt.Value, ".")(2), Split(Me.Datum_Benoetigt.Value, ".")(1), Split(Me.Datum_Benoetigt.Value, ".")(0)) + TimeSerial(Split(Me.Zeit_Benoetigt.Value, ":")(0), Split(Me.Zeit_Benoetigt.Value, ":")(1), 0)
            SQL_Date_Time_BenoetigtDatum = "#" & Year(Date_Time_Value) & "/" & _
                                            Format(Month(Date_Time_Value), "00") & "/" & _
                                            Format(Day(Date_Time_Value), "00") & " " & _
                                            Format(Hour(Date_Time_Value), "00") & ":" & _
                                            Format(Minute(Date_Time_Value), "00") & ":" & _
                                            Format(Second(Date_Time_Value), "00") & _
                                            "#"
    
    Zur Beantwortung Deiner Frage:

    zu Punkt1: Ja die Exceltabelle ist temporär und läd somit auch Daten, welche schon bearbeitet wurden. Die Tabelle aktualisiert sich auch sofort, wenn jemand über die Bestellungsform eine neue Bestellung vornimmt., Da aber die Daten in der Accesdatenbank stehen bleiben und auch nach Bearbeitung nicht gelöscht oder als erledigt markiert sind, ruft Excel immer die komplette Bestellliste ab.

    Die DatenBank wurde einmal von einem Kollegen erstellt, welcher leider nicht mehr verfügbar ist.
    Was den Status angeht, kann ich nur vermuten, das die 0 im letzten Eintrag der aussagt, kein Eintrag vorhanden und 1 dafür steht das ein Eintrag vorliegt. So wie es aussieht, wird ein Bearbeitungsstatus nicht dokumentiert, denn wenn es so wäre könnte ja vieleicht eine 2 als ist "bearbeitet "gesetzt werden ,um somit die Eintäge eventuell zu filtern, damit diese beim nächsten laden in der Exceltabelle nicht wieder auftauchen.

    Über die UserForm mit den Optionsbutton habe ich mit "daten holen" die Daten abgefragt und in die Logistikform geladen.
    Danach in Spalte L von hand in Tabelle ein x eingetragen und gespeichert.Wenn jetzt bei CP1 Optionsbutton "nicht da" oder "erledigt" per click ausgewählt wird, dann werden die Einträge aus der Tabelle gelöscht. Da diese aber in Datenbank nicht entfernt, bzw. im Status aktualisiert werden und die Tabelle temporär ist, erscheinen natürlich alle Daten wieder.
    Soweit ich das nachvollziehen kann erfolgt der DatenBankaufruf beim Öffnen der Mappe, sowie auch dann, wenn eine neue Bestellung angelegt wird.



    Ich hoffe das ich für Dich etwas entwirren konnte.

    Viele Grüße
    Detlef
     
    DetBarr2, 10. April 2022
    #19
  5. Beverly
    Beverly Erfahrener User
    Hi Detlef,

    also wir müssen das wirklich Schritt für Schritt angehen.
    Könnte man generell folgendes machen: mit der Codezeile TempSheet.Cells.Clear löschst du komplett das gesamte Tabellenblatt - wäre es nicht besser nur für Spalte A bis Spalte K die Zellen zu leeren, sodass Spalte L erhalten bleibt, in welcher der Status des Datensatzes abgelegt wird? Wenn die "alten" Daten immer wieder neu eingelesen werden aus der Access-Datenbank bleiben sie doch dann immer in derselben Zeile, sodass dann auch der Bearbeitungsstand erhalten bliebe. Oder ändert sich die Reihenfolge in der Access-Datenbank?



    TextBoxen in UserForm füllen GrußformelTextBoxen in UserForm füllen Beverly's Excel - Inn
     
    Beverly, 10. April 2022
    #20
    1 Person gefällt das.
  6. DetBarr2 Neuer User
    Hi Karin,

    nein die Reihenfolge der Datenbank ändert sich nicht und wird fortlaufend erweitert zB. 1 ,2, 3 usw.
    Wenn man allerdings einen Datensatz zB 2 in der Datenbank löscht dann TextBoxen in UserForm füllen Screenshot (50).png erscheint in der Tabelle des Temsheets 1,3,4,usw.
    Allerdings würde dann die 3 nicht mehr in Zeile 4 der Tabelle stehen , sondern in Zeile 3.
    Die Auflistung der fotlaufenden Bestellnummern steht in Spalte A. Zu sehen ist 1,4,5 usw 2 und 3 habe ich mal in der Datenbank gelöscht als Beispiel.

    Ich versuche gerade herauszubekommen, wie in Access Bedingungen erstellt werden Können um ein Stausabfrage zu generieren.TextBoxen in UserForm füllen :rolleyes:TextBoxen in UserForm füllen :rolleyes:

    Viele Grüße
    Detlef
     
    DetBarr2, 10. April 2022
    #21
  7. Beverly
    Beverly Erfahrener User
    Hi Detlef,

    Das wäre natürlich ideal, wenn bereits in der Access-Datenbank der Status ausgehalten würde, denn alle anderen Varianten, die mir einfallen, würden den gesamten Ablauf in der Excel-Arbeitsmappe wesentlich erschweren und - vor allem - sehr verlangsamen.



    TextBoxen in UserForm füllen GrußformelTextBoxen in UserForm füllen Beverly's Excel - Inn
     
    Beverly, 10. April 2022
    #22
    1 Person gefällt das.
  8. DetBarr2 Neuer User

    TextBoxen in UserForm füllen

    Hi Karin,

    das dachte ich mir auch schon. Ich habe die Frage auch schon hier im Accessforum eingestellt, leider hat darauf bisher keiner geantwortet. Lassen wir es erst einmal gut sein bis hierhin. Wenn ich was herausgefunden habe oder mehr weiß, dann melde ich mich ok.
    Bis dahin noch einmal vielen vielen Dank für Deine Hilfe und Deine Geduld.

    Viele Grüße
    DetlefTextBoxen in UserForm füllen *;)*TextBoxen in UserForm füllen *;)*
     
    DetBarr2, 10. April 2022
    #23
  9. Beverly
    Beverly Erfahrener User
    Hi Detlef,

    vielleicht noch als Tipp: soweit ich weiß, gibt es generell die Möglichkeit, aus Excel heraus Daten in eine Access-Datenbank einzutragen - vielleicht solltest du deshalb genau diese Frage auch hier noch im Excel-Forum stellen.
    Ich schätze allerdings, dass dann die Access-Datenbank um 1 Feld erweitert werden müsste, falls nicht bereits prophylaktisch 1 Feld mehr programmiert wurde - aber das ist dir gewiss bekannt.



    TextBoxen in UserForm füllen GrußformelTextBoxen in UserForm füllen Beverly's Excel - Inn
     
    Beverly, 11. April 2022
    #24
    1 Person gefällt das.
Thema:

TextBoxen in UserForm füllen

Die Seite wird geladen...
  1. TextBoxen in UserForm füllen - Similar Threads - TextBoxen UserForm füllen

  2. Textboxen im Userform mit Textmarkeninnhalt füllen

    in Microsoft Word Hilfe
    Textboxen im Userform mit Textmarkeninnhalt füllen: Hallo, ich bearbeite zurzeit ein Word-Dokument mit 60 Textmarken. Die Textmarken fülle ich mit einem Userform. Die Bezeichnung der Textboxen und Textmarken ist gleich. Jetzt möchte ich den Spieß...
  3. Userform Textfeld füllen abhängig von Wert aus Combobox

    in Microsoft Excel Hilfe
    Userform Textfeld füllen abhängig von Wert aus Combobox: Hallo zusammen, weiter geht es mit Problemen. Ich Filter die Daten für die Combobox mit diesem Code Private Sub UserForm_Initialize() Dim tbl As ListObject Dim rng As Range Dim cell As Range Dim...
  4. Variable Zahl der TextBoxes im UserForm

    in Microsoft Excel Hilfe
    Variable Zahl der TextBoxes im UserForm: Hallo, ich möchte ein VBA-Formular mit TextBoxes anlegen, die man befüllt. Je nach dem, könnte man mehr oder weniger TextBoxes haben. Kann man nun irgendwas machen, damit - je nach Bedarf - mehr...
  5. UserForm Textbox als Hyperlink Excel 2003

    in Microsoft Excel Hilfe
    UserForm Textbox als Hyperlink Excel 2003: Gruess Gott miteinander, in einer Textbox der userform befindet sich ein Hyperlink in Textform. Der Text wird über Sub Zellaktualisierung() Me.TextBoxSpalteHyperlink.Text =...
  6. weitere Tabellendaten von Kunden in eine Userform mit Textboxen laden

    in Microsoft Excel Hilfe
    weitere Tabellendaten von Kunden in eine Userform mit Textboxen laden: Guten Morgen, zu so früher Stunde noch ein Anliegen, wo ich echt Hilfe brauche. Werde dann gleich auch meine Codes dazu mitsenden. Ich habe eine Datenmaske, wo ich Teilnehmer*innen und...
  7. Excel VBA Userform Textbox Inhalt variabel

    in Microsoft Excel Hilfe
    Excel VBA Userform Textbox Inhalt variabel: Ich habe ein kleines Userform, dass mit mit folgendem Code in TextBox1 den Inhalt von Zelle D3, und in Textbox2 den Inhalt von Zelle E3 anzeigt. If [B3] = "X" Then UserForm1.CheckBox1.Value =...
  8. userform textbox mit vba belegen

    in Microsoft Excel Hilfe
    userform textbox mit vba belegen: Hallo Gemeinde. Ich habe eine Tabelle mit Verbrauchsmaterialien. In dieser habe ich eine Useroform mit zwei Eingabefeldern erstellt. Beim Klicken auf die Schaltfläche 7 erscheint die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden