Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Texteil abschneiden bei Kopie in anderes Feld





Frage

Hallo, brauche mal wieder Hilfe. Ich habe im 1.Textfeld "test.doc" eingetragen. Nun möchte ich automatisch im 2.Textfeld "test" 3.Textfeld "test.html" stehen haben. Kann mir jemand helfen? Gruß Gilli

Antwort 1 von pelle

Hallo Gilli,

um welches Datenbankprogramm handelt es sich?

Ich nehme mal Access an.

Du kannst dies mit einer Aktualisierungsabfrage erreichen.

Dein 1. Textfeld ist da ein "Format" enthalt.

z.B.
immer ?????:doc;
der erste Teil eine feste länge;
ein eindeutiges Trennzeichen zwischen 1. und zweiten Teil?

Wenn ja, lässt es sich mit Hilfe von Teilstr() und finden realisieren, bräuchte dafür aber noch ein paar Informationen.

gruss
pelle

Antwort 2 von gilli87

Hallo Pelle, A2000, der erste Teil keine feste Länge.
Eindeutig ein Punkt als Trennzeichen.

Die Textfelder sind auf dem gleichen Formular.
Es soll lediglich im ersten Feld ein variabler Dateinamenlänge und mit variabler Dateiendung eingetippt werden und im 2.Feld der Dateiname ohne Endung und im 3.Feld mit Endung .html

1. Feld: test.doc eingegeben
2. Feld: test soll erscheinen
3. Feld: test.html soll erscheinen

oder

1. Feld: testseite.doc eingegeben
2. Feld: testseite soll erscheinen
3. Feld: testseite.html soll erscheinen

Gruß Gilli

Antwort 3 von pelle

Hallo Gilli,

öffne eine Abfrage auf deiner bestehenden Tabelle.

Mach daraus eine Aktualisierungsabfrage und nehme diese 3 Felder in die Abfrage auf.

Angenommen:

1. Textfeld heisst : 1_Text
2. Textfeld heisst : 2_Text
3. Textfeld heisst:: 3_Text

Trage in der Zeile Aktualisieren bei Feld 2_Text folgendes ein:
TeilStr([1_Text];1;InStr(1;[1_Text];".")-1)

bei Feld 3_Text folgendes eintragen:
TeilStr([1_Text];1;InStr(1;[1_Text];".")-1) & ".htlm"

Dies müsste funktionieren!
Vorausgesetzt in deinem 1. Textfeld kommt nur ein Punkt vor!

Hilft es dir weiter?

gruss
pelle

Ps.: Die von mir eben genannte Funktion Finden stammt aus Excel, in Access ist es InStr(); sorry!

Antwort 4 von erik

Ersetze InStr() durch InStrRev(), dann spielt die Anzahl der Punkte keine Rolle mehr, weil von rechts her gesucht wird.

Antwort 5 von gilli87

Vielen Dank an pelle und erik
Gruß Gilli

Antwort 6 von pelle

Hallo Gilli,

danke für deine Rückmeldung.

@erik danke für deinen Hinweis!

gruss
pelle

Antwort 7 von gilli87

Hallo pelle und/oder erik oder alle.
Nochmal ne Idee?
Habe folgenden Code ausprobiert, damit klappt es bei after update im Formular.

Private Sub txtDateiname_AfterUpdate()

Me![txtHTMLName] = (Mid(Me![txtDateiname], 1, Len(Me![txtDateiname]) - 4))
Me![txtHTMLLink] = (Mid(Me![txtDateiname], 1, Len(Me![txtDateiname]) - 4)) & ".html"

Me!memBeschreibung.SetFocus
´End If
End Sub

Ich möchte aber eure Logik in after Update drin haben. Hab das mal ausprobiert aber die Simikolons werden immer bemeckert. Helft ihr mir noch einmal?

´TeilStr([txtDateiname];1;InStrRev(1;[txtDateiname];".")-1)
´TeilStr([txtDateiname];1;InStrRev(1;[txtDateiname];".")-1)& "html

Vielen Dank, Gruß Gilli

Antwort 8 von erik

Hi Gilli,

die Semikolons können nur im Abfrageeditor oder in den Eigenschaften von Steuerelementen benutzt werden. Wenn du eine solche Zeile in Visual Basic verfassen willst, dann muss das Semikolon durch Komma ersetzt werden. Außerdem musst du die Funktion TeilStr() in Mid() umbenennen. In Visual Basic gibt es immer nur die englischen Versionen der Funktionsnamen.

Antwort 9 von gilli87

Hallo Erik, ich bekomme nach Code:

Me![txtHTMLName] = (Mid(Me![txtDateiname], 1, InStrRev(Me![txtDateiname]), ".") - 1)
Me![txtHTMLLink] = (Mid(Me![txtDateiname], 1, InStrRev(Me![txtDateiname]), ".") - 1) & "html"

Fehler beim Kompilieren.
Argument ist nicht optional

Hilfe!!!! Gilli

Antwort 10 von erik

Hier sind Klammern falsch gesetzt. Dies hier sollte funktionieren:

Me![txtHTMLName] = Mid(Me![txtDateiname], 1, InStrRev(Me![txtDateiname], ".") - 1)
Me![txtHTMLLink] = Mid(Me![txtDateiname], 1, InStrRev(Me![txtDateiname], ".") - 1) & ".html"

Antwort 11 von gilli87

es funktioniert, hurra !!!!

Schön daß es Dich/Euch gibt.
Gruß
Gilli

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: