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
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
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!
ö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
Gruß Gilli
Antwort 6 von pelle
Hallo Gilli,
danke für deine Rückmeldung.
@erik danke für deinen Hinweis!
gruss
pelle
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
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.
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
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"
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
Schön daß es Dich/Euch gibt.
Gruß
Gilli

