Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Textbox als Übersicht verwenden ?
zurück: Vorjahreswert übernehmen (Praktikum) weiter: Werte übernehmen mit Kontrollkästchen(brauchs für Praktikum) 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
denzur
Im Profil kannst Du frei den Rang ändern


Verfasst am:
02. März 2010, 16:51
Rufname:

Textbox als Übersicht verwenden ? - Textbox als Übersicht verwenden ?

Nach oben
       Version: Office 2007

Hallo zusammen,
folgendes Problem:
Ich habe eine Textbox, die ich als Übersichtsblatt benutzen möchte.
Ich habe ein Kombinationsfeld aus dem man sich einen Wert suchen kann. Auf button "Wirkstoff hinzufügen" soll der Text aus dem Kombinationsfeld in das Textfeld geschrieben werden. Der nächste Wert den ich aussuche und per Buttun anfügen will soll in die nächste Zeile des Textfeldes geschrieben werden.
Das ganze habe ich mit folgendem Code realisiert:

Code:

Private Sub btn_hinzufügen_Click()
Dim strWirkstoff As String

cbx_Wirkstoff.SetFocus
strWirkstoff = cbx_Wirkstoff.Text

txt_Wirkstoff.Locked = False
txt_Wirkstoff.SetFocus
test = txt_Wirkstoff.Text

If (txt_Wirkstoff.Text = "") Then
txt_Wirkstoff.Text = sWirkstoff
txt_Wirkstoff.Locked = True

Else
txt_Wirkstoff.Text = txt_Wirkstoff.Text & vbCrLf & strWirkstoff
txt_Wirkstoff.Locked = True
End If

End Sub



Das ganze tut auch so wie ich will Very Happy

nun habe ich aber einen Button Wirkstoff entfernen, der den aus dem Kombinationsfeld ausgewählten Wirkstoff wieder aus der textbox entfernen soll.
Wie kann ich die Textbox also nach einem bestimmten String durchsuchen? und diesen entfernen?

Kann ich auch irgendwie verhindern, dass man zweimal den gleichen Wirkstoff in die textbox hinzufügt? (Dies wäre nur ein nice to have und erstmal nicht so wichtig)

Viele Grüsse aus der Schweiz
denzur
MissPh!
Office-VBA-Programmiererin


Verfasst am:
02. März 2010, 17:25
Rufname:
Wohnort: NRW


AW: Textbox als Übersicht verwenden ? - AW: Textbox als Übersicht verwenden ?

Nach oben
       Version: Office 2007

Hallo,

zunächst einmal: Code ist stets zu kopieren, nicht freihändig hier hineinzuschreiben.
(Fehler: sWirkstoff)

Und dann musst du weder den Focus auf ein Steuerelement setzen noch die Text-Eigenschaft ansprechen, es geht problemlos mit Value.
Schließlich brauchst du die Steuerelemente nicht zu entsperren, um sie per VBA beschreiben zu können.

Der Code reduziert sich also auf:
Code:
Private Sub btn_hinzufügen_Click()

    test = Me!txt_Wirkstoff       ' wozu? wo deklariert?

    If NZ(txt_Wirkstoff) = "" Then
        txt_Wirkstoff = Me!cbx_Wirkstoff     ' strWirkstoff überflüssig
    Else
        txt_Wirkstoff = txt_Wirkstoff & vbCrLf & Me!cbo_Wirkstoff
    End If
End Sub


Das Entfernen eines Wirkstoffes kannst du mit Hilfe der Replace-Funktion erreichen.

Wenn du die ausgewählten Wirkstoffe zusätzlich noch in einer Liste speicherst, könntest du diese bei der Auswahl im Kombifeld berücksichtigen und ausschließen.
Code:
cboWirkstoff.Rowsource = "Select wirkstoff From tblwirkstoffe Where wirkstoff Not In (" & strListe & ")"

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


Verfasst am:
03. März 2010, 09:33
Rufname:

AW: Textbox als Übersicht verwenden ? - AW: Textbox als Übersicht verwenden ?

Nach oben
       Version: Office 2007

Wow danke für die Tipps =)
ich hab den Code von meiner VM kopiert und den fehler noch nicht gesehen weil ich im Code immer wieder mal rumgepfuscht habe... Embarassed

was das sperren und entsperren angeht hatte ich mir shcon etwas dabei gedacht, da ich verhindern will, dass der Benutzer da was von Hand ins Textfeld schreiben kann...gibt es da auch noch eine bessere lösung?

Edit: Okay das mit dem gesperrten Feld funktioniert auch so =)

Edit: Also das mit dem Replace funktioniert jetzt, leider löscht er mir nur den gewünschten string raus nicht aber die leerzeile, die daraufhin zurückbleibt. Was kann ich machen.?

Noch eine andere Frage: Wenn ich das mit der Liste realisieren kann und mein Wirkstoff aus dem Kombifeld verschwindet nachdem ich ihn im textbox habe, kann ich ihn doch nicht mehr auswählen um ihn dann anschließend wieder aus der textbox zu löschen oder?

beste grüsse
denzur



Viele Grüße
denzur
MissPh!
Office-VBA-Programmiererin


Verfasst am:
03. März 2010, 10:21
Rufname:
Wohnort: NRW

AW: Textbox als Übersicht verwenden ? - AW: Textbox als Übersicht verwenden ?

Nach oben
       Version: Office 2007

Ok, noch einmal das erweiterte Beispiel:
Code:
    Dim strListe As String    ' Deklaration im Modulkopf

Private Sub btn_hinzufügen_Click()
    Me!txt_Wirkstoff = txt_Wirkstoff & Me!cbo_Wirkstoff & vbCrLf
    strListe = strListe & Me!cboWirkstoff & ","
 
    Me!cboWirkstoff.RowSource = "Select wirkstoff From tblwirkstoffe Where wirkstoff Not In (" & Left(strListe,Len(strListe)-1) & ")"
End Sub

Und so machst du die Auswahl wieder rückgängig:
Code:
Private Sub btn_entfernen_Click()
    Me!txt_Wirkstoff = Replace(Me!txtWirkstoff, Me!cboWirkstoff & vbCrLf, "")
    strListe = Replace(strListe, Me!cboWirkstoff & ",", "")
    If strListe <> "" Then
        Me!cboWirkstoff.RowSource = "Select wirkstoff From tblwirkstoffe Where wirkstoff Not In (" & Left(strListe,Len(strListe)-1) & ")"
    Else
        Me!cboWirkstoff.RowSource = "Select wirkstoff From tblwirkstoffe"
    End If
End Sub


Zitat:
kann ich ihn doch nicht mehr auswählen um ihn dann anschließend wieder aus der textbox zu löschen oder?
Da hast du allerdings Recht... Confused

Zum Entfernen könntest du evtl. ein zweites Kombifeld einsetzen, sonst dürfte es etwas umständlicher werden, doppelte Einträge zu verhindern, obwohl - das geht natürlich auch anders:
Code:
Private Sub btn_hinzufügen_Click()
    If Instr(Me!txtWirkstoff, Me!cboWirkstoff) > 0 Then Exit Sub

    Me!txt_Wirkstoff = txt_Wirkstoff & Me!cbo_Wirkstoff & vbCrLf
    strListe = strListe & Me!cboWirkstoff & ","
 
    Me!cboWirkstoff.RowSource = "Select wirkstoff From tblwirkstoffe Where wirkstoff Not In (" & Left(strListe,Len(strListe)-1) & ")"
End Sub[

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


Verfasst am:
03. März 2010, 10:41
Rufname:


AW: Textbox als Übersicht verwenden ? - AW: Textbox als Übersicht verwenden ?

Nach oben
       Version: Office 2007

Hey vielen danke für deine Mühen!

Ich stecke beim hinzufügen fest...hab den Code umgesetzt und auf meine Bedürfnisse angepasst (habe keien extra wirkstoff tabelle, sondern beziehe die werte aus einer anderen Angebotstabelle). Bei mir kommt es vor dass ein Wirkstoff gleich mehrmals in der tabelle vorhanden ist...ich weiß Redundanz ^^...

naja auf jeden fall fügt er meinen text aus dem kombifeld hinzu und wenn ich wieder aufs combifeld klicke will er dass ich einen Parameterwert eingebe. Gebe ich nun einen Wirkstoff ein, zeigt er mir alle Wirkstoffe (auch doppelte (was muss ich da in den sql string mit aufnehmen dass das vermieden wird?)) außer dem, den ich eingegeben habe...

beste grüsse
denzur
MissPh!
Office-VBA-Programmiererin


Verfasst am:
03. März 2010, 10:46
Rufname:
Wohnort: NRW

AW: Textbox als Übersicht verwenden ? - AW: Textbox als Übersicht verwenden ?

Nach oben
       Version: Office 2007

Zitat:
Bei mir kommt es vor dass ein Wirkstoff gleich mehrmals in der tabelle vorhanden ist
Da könnte ein Select DISTINCT ..." helfen. Zeig doch bitte mal deinen SQL-String.

Zitat:
... will er dass ich einen Parameterwert eingebe
Wonach genau wird da gefragt?
_________________
Gruß MissPh!
denzur
Im Profil kannst Du frei den Rang ändern


Verfasst am:
03. März 2010, 10:50
Rufname:

AW: Textbox als Übersicht verwenden ? - AW: Textbox als Übersicht verwenden ?

Nach oben
       Version: Office 2007

hey mit deiner Läsung von oben, dass er einfach abbricht wenn da schon der string vorhanden ist hat sich die sache mit dem sql string ja erledigt =) den Inhalt bekommt das kombifeld einfach weiterhin aus meiner zusammengeklickten Abfrage Wink
So jetzt probiere ich eben noch schnell das wieder rauslöschen udn melde mich anschließend wieder

EDIT:
Also das rauslöschen war mit dem Replace Befehl
Code:
Me!txt_Wirkstoff = Replace(Me!txt_Wirkstoff, Me!cbx_Wirkstoff & vbCrLf, "")

ein einzeiler der einwandfrei funktioniert =)

ich habe nun vor mit den inhalt dieses textfeldes als string zu speichern im Format: Wirkstoff1,Wirkstoff2,Wirkstoff3

Ich brauch diesen String um ihn in mein Wirkstofffeld in meiner Angebtostabelle zu speichern. Gibts da ne einfache Lösung?

Ach ja! dieser String sollte global verfügbar sein, da ich von einem anderen Formular auf diesen zugreifen muss um ein anderes Kombinationsfeld zu füllen..
wie kann man in vba solche spässe anstellen?

gruss denzur
MissPh!
Office-VBA-Programmiererin


Verfasst am:
03. März 2010, 11:20
Rufname:
Wohnort: NRW

AW: Textbox als Übersicht verwenden ? - AW: Textbox als Übersicht verwenden ?

Nach oben
       Version: Office 2007

Was du da vorhast entspricht doch genau dem Inhalt von strListe.
Deklariere die Variable in einem allgemeinen Modul mit der Anweisung "Public".

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


Verfasst am:
03. März 2010, 11:57
Rufname:

AW: Textbox als Übersicht verwenden ? - AW: Textbox als Übersicht verwenden ?

Nach oben
       Version: Office 2007

Hmm ich steig irgendwie nicht dahinter =(

so ich habe die Variable als Public in frm_Wirkstoffe im kopf definiert.
In frm_Wirkstoffe kann ich die variable verändern wie ich will mit
Code:
MsgBox(strListe)
kann ich sie mir ausgebel lassen und zufrieden feststellen, dass sie das anzeigt was sie soll.

Wenn ich jetz aber von frm_Angebotsdaten
Code:
MsgBox(strListe)
ausführen lasse, zeigt er mir an dass die Variable leer ist. Es sind auch beide Formulare geöffnet...was mach ich falsch?

gruss denzur
MissPh!
Office-VBA-Programmiererin


Verfasst am:
03. März 2010, 12:01
Rufname:
Wohnort: NRW


AW: Textbox als Übersicht verwenden ? - AW: Textbox als Übersicht verwenden ?

Nach oben
       Version: Office 2007

Zitat:
Deklariere die Variable in einem allgemeinen Modul mit der Anweisung "Public".
also nicht im Klassenmodul eines Formulars.
_________________
Gruß MissPh!
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: Operation muss eine aktualisierbare Abfrage verwenden 4 KarlKlammer 709 13. Okt 2010, 13:44
KarlKlammer (ohne Login) Operation muss eine aktualisierbare Abfrage verwenden
Keine neuen Beiträge Access Tabellen & Abfragen: Daten aus Formular als Kriterium in Abfrage verwenden 1 Joerg_100 290 05. Okt 2010, 14:03
Joerg_100 Daten aus Formular als Kriterium in Abfrage verwenden
Keine neuen Beiträge Access Tabellen & Abfragen: Operation muss eine aktualisierbare Abfrage verwenden 2 Kutsche123 1208 09. Sep 2010, 15:50
MAPWARE Operation muss eine aktualisierbare Abfrage verwenden
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle zur Übersicht erstellen 16 Geist12 908 21. Jul 2010, 14:47
Nouba Tabelle zur Übersicht erstellen
Keine neuen Beiträge Access Tabellen & Abfragen: Werte aus Matrix für Berechnung verwenden 2 DSIEM1803 298 23. Jun 2010, 11:45
Gast Werte aus Matrix für Berechnung verwenden
Keine neuen Beiträge Access Tabellen & Abfragen: Aufrunden-function aus Excel verwenden 5 accessler 1309 16. März 2010, 10:10
accessler Aufrunden-function aus Excel verwenden
Keine neuen Beiträge Access Tabellen & Abfragen: Wert aus Formular als Kriterium für Abfrage verwenden 13 Lena S. 12750 08. Feb 2010, 15:53
gast1905 Wert aus Formular als Kriterium für Abfrage verwenden
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle2 als Teilkriterium für Tabelle 1 verwenden, Help :-) 21 Ammo1985 1221 30. Sep 2009, 14:16
MAPWARE Tabelle2 als Teilkriterium für Tabelle 1 verwenden, Help :-)
Keine neuen Beiträge Access Tabellen & Abfragen: Textfeld auslesen und in SQL verwenden 3 B0b 1916 17. Jun 2009, 19:53
jens05 Textfeld auslesen und in SQL verwenden
Keine neuen Beiträge Access Tabellen & Abfragen: parameter 2 mal verwenden 5 hikeda_ya 297 20. Feb 2009, 03:51
Willi Wipp parameter 2 mal verwenden
Keine neuen Beiträge Access Tabellen & Abfragen: Replikations-ID verwenden Ja/Nein 0 fd06 594 17. Jan 2009, 12:21
fd06 Replikations-ID verwenden Ja/Nein
Keine neuen Beiträge Access Tabellen & Abfragen: Gleichen Datensatz unter neuer ID verwenden 33 Smmmile 2526 26. Nov 2008, 16:31
Jissy Gleichen Datensatz unter neuer ID verwenden
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Macromedia Dreamweaver