Office: Userform Textbox in variable umwandeln und per sql ausgeben

Helfe beim Thema Userform Textbox in variable umwandeln und per sql ausgeben in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Leute ich brauche ich dringend Hilfe, wäre sooo lieb wenn mir jemand weiterhelfen könnte. Ich habe ein kleines Projekt aber komme gerade nicht... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von DemiE, 4. Juli 2010.

  1. DemiE User

    Userform Textbox in variable umwandeln und per sql ausgeben


    Hallo Leute ich brauche ich dringend Hilfe, wäre sooo lieb wenn mir jemand weiterhelfen könnte. Ich habe ein kleines Projekt aber komme gerade nicht voran. Crying or Very sad
    Ich habe ein Userform angelegt mit einem TextBox bei dem man eine Kalenderwoche zwischen 1 und 52 eingeben muss. Dies soll durch eine verbindung einer anderen Datenbank die Kalenderwoche in excel per SQL abfrage ausgegeben werden.

    Hier mein Code:

    Userform

    Option Explicit

    Private Sub CommandButton1_Click()

    If IsNumeric (tfTextBox) Then
    Call Testmodul.Berechnung
    Unload UserForm1
    End
    Else
    MsgBox("Bitte geben Sie eine Kalenderwoche zwischen 1 und 52 ein!")
    tfTextBox = ""
    End If
    End Sub



    Testmodul


    Option Explicit

    Sub Berechnung()

    Dim oCon As New ADODB.Connection
    Dim oRS As New ADODB.Recordset
    Dim strSQL As String
    Dim owb As Workbook
    Dim ows2 As Worksheet
    Dim ausbeute, zahl As Double
    Dim i,j SummeLeaves, Summereject as Long
    Dim feldinhalt As String
    Dim Woche As Byte
    Dim gesamtausbeute As Double


    Set owb = ThisWorkbook
    Set ows2 = owb.Worksheets("files")
    (woche = 22) ' Wenn ich das so lasse klappt es wunderbar, es wird jedoch nur
    die woche 22 ausgegeben und nicht irgendeins wo man eingibt

    'Vorher Inhalte von Tabelle löschen
    Rows ("15:65536").Delete

    ' ows2.Activate
    oCon.ConnectionString = Provider=Ora....blabla bla

    strSQL= _
    "SELECT " & _
    "L3TYP, ZHLST, ABGMGE, AUSB " & _
    "FROM blablaTabelle " & _
    "WHERE WOCHE = " & woche & _
    "ORDER BY L3TYP"


    oRS.CursorType = adOpenDynamic
    oRS.LockType = adLockOptimistic
    oRS.CursorLocation = adUseClient
    oRS.Open strSQL, oCon

    ows2.Cells (4, 1) = "level3-Typ"
    ows2.Cells (4, 2) = "zählstelle"
    und so weiter

    'Ausgabe der Reject und Unscrap

    i = 5
    Do Until oRS.EOF
    ows2.Cells (i, "A") = oRS.Fields(0)
    ows2.Cells (i, "B") = oRS.Fields(1)
    ....
    ....

    i = i + 1
    oRS.MoveNext
    Loop
    oRS.close

    oCon.Close


    Schonmal vielen Dank im voraus
     
    DemiE, 4. Juli 2010
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    Du hast eine Userform, in der das Formular(text)feld 'tfTextBox' und der Button 'CommandButton1' enthalten sind.
    Ferner hast Du ein allgem. Codemodul 'Testmodul', in dem die Sub 'Berechnung' enthalten ist.

    Du klickst auf den Button, testest, ob der Wert im Textfeld numerisch ist: falls ja, rufst Du die Sub 'Berechnung' auf.

    Das grundlegende Problem dabei dürfte sein, dass die Sub nicht wissen kann, welchen Wert Du im Textfeld des Formulars eingegeben hast.

    Um das möglichst einfach zu ändern,

    1) deklarierst Du in der Sub nicht
    Dim Woche as Byte
    sondern entfernst diese Deklaration an dieser Stelle. Vielmehr fügst Du zwischen 'Option Explicit' und 'Sub Berechnung()' die folgende Deklaration auf Modulebene ein:
    Public Woche As Byte
    Dadurch wird die Variable 'Woche' im gesamten Projekt bekannt/verfügbar gemacht (Hast Du jedoch die Variable Woche in der Sub deklariert, wird sie bei jedem Aufruf der Sub auf 0 gesetzt !!)
    Die bisherige Wertzuweisung 'Woche=22' musst Du natürlich in der Sub entfernen.

    2) fügst Du in der Userform vor dem 'Call Textmodul.Berechnung' folgendes Zuweisungsstatement ein:
    Woche = tfTextBox.Value
    Dadurch wird der Wert des Formularfeldes der globalen Variablen 'Woche' zugewiesen. Diese wird dann in der Sub bei der Konstruktion des SQL-Abfragestrings in die Variable 'strSQL' eingebaut.

    Was mir sonst noch aufgefallen ist:
    1) Eventuell kann es hier ('strSQL') noch ein kleines Problem geben: es sieht so aus, als ob zwischen 'woche' und der SQL-Klausel 'ORDER' kein Leerzeichen im SQL-String 'strSQL' enthalten ist.
    2) Kann es sein, dass Du bisher leistungsfähigere Programmiersprachen als VBA gewöhnt warst zu programmieren?
    Dann hast Du wahrscheinlich die tatsächliche Wirkungsweise der folgenden Deklaration nicht so gewollt:
    Dim ausbeute, zahl As Double
    Dim i,j SummeLeaves, Summereject as Long

    Es wird nämlich in diesem Fall die Variable 'ausbeute' als 'Variant' deklariert und nicht als 'Double' wie 'zahl' und ferner die Variablen 'i','j','SummeLeaves' nicht als 'Long', sondern ebenfalls als 'Variant'. Dabei dürfte zwischen 'j' und 'SummeLeaves' noch ein Komma fehlen. Also sollte sie so lauten:
    Dim Ausbeute As Double, Zahl As Double
    Dim i As Long, j As Long, SummeLeaves As Long, Summereject As Long
     
    Exl121150, 4. Juli 2010
    #2
  3. DemiE User
    Vielen Dank für den Tipp!!! Werde ich mal gleich ausprobieren;)
     
    DemiE, 4. Juli 2010
    #3
Thema:

Userform Textbox in variable umwandeln und per sql ausgeben

Die Seite wird geladen...
  1. Userform Textbox in variable umwandeln und per sql ausgeben - Similar Threads - Userform Textbox variable

  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. TextBoxen in UserForm füllen

    in Microsoft Excel Hilfe
    TextBoxen in UserForm füllen: Erst einmal ein freundliches Hallo, da ich hier neu bin*:D* Jetzt zu meinem Problem. Aus einer Accesdatenbank werden Werte mit ID Nummer abgefragt und an einen Excelsheet Temp übergeben. Ich...
  5. 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...
  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