WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 26.06.2008, 12:01   #1
kainz
Newbie
 
Registriert seit: 22.06.2006
Beiträge: 17


Standard Formular Textfeld als Dateiname

Ich habe ein Formular, wo per Makro aus einem (oder mehreren) Textfeld(ern) gleich beim abspeichern der Dateiname erzeugt wird.

Der Code lautet:

Sub FileSave()

If ActiveDocument.Path = "" Then 'Falls Dokument noch nie gespeichert wurde
FileSaveAs
Exit Sub
End If
ActiveDocument.Save
End Sub

Sub FileSaveAs()
With Dialogs(wdDialogFileSaveAs) 'Beispiel: 2008_01_28_KO_4220_102360_Toner PC75A.doc
.Name = ActiveDocument.FormFields("datum").Result & "_KO_" & _
ActiveDocument.FormFields("werk").Result & "_" & _
ActiveDocument.FormFields("lieferant").Result & "_" & _
ActiveDocument.FormFields("artikel").Result
.Show
End With
End Sub

Funktioniert auch wunderbar, solange nicht bestimmte Zeichen ("/", "\" , "",...) in diesen Formularfeldern vorkommen - wird mir natürlich nicht als Dateiname akzeptiert.

Wie kann ich jetzt per VB diese "Sonderzeichen" in ein "_" umwandeln, damit das Dokument ohne Fehler abgespeichert werden kann??

Vielen Dank schon mal für Eure Hilfe
kainz ist offline   Mit Zitat antworten
Alt 26.06.2008, 12:11   #2
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Wie wäre es mit ersetzen?

Warum ersetzt du die ungewünschten Zeichen nicht einfach? (2 Schleifen + mid)

pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 26.06.2008, 12:33   #3
Farkarich
Senior Member
 
Registriert seit: 19.09.2000
Alter: 40
Beiträge: 122


Farkarich eine Nachricht über ICQ schicken
Standard

Hi

ich hab mal so was in der art machen müssen und habs über ascii gemacht sprich

alles auf klein formatiert und dann: jedes zeichen überprüft ob der wert von asc() in einen gewünsten bereich liegt ich glaube (a = 24 und b = 25 usw) und wenns nicht in dem bereich war dann eben mit _ ersetzten..

wichtig ist dabei dasst nicht vergisst alles klein oder groß zu machen weil a und A haben zB verschieden werte..
Farkarich ist offline   Mit Zitat antworten
Alt 26.06.2008, 13:27   #4
kainz
Newbie
 
Registriert seit: 22.06.2006
Beiträge: 17


Standard

Vielen Dank für für Eure Hilfe
kainz ist offline   Mit Zitat antworten
Alt 27.06.2008, 07:39   #5
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

Wenn du ein bestimmtes Zeichen (oder auch mehere) ersetzen willst, bietet sich die VB-Funktion Replace an.

Wenn du nur bestimmte Zeichen erlauben willst, mach es über den ASCII-Code. Farkarich hat das ja schon beschrieben.

48 bis 57, 65 bis 90, 97 bis 122 (Buchstabe groß und klein oder Zahl). Eventuell solltest du aber auch noch weitere Zeichen erlauben (z. B. - _ .)


mfg

WB
wbendl ist offline   Mit Zitat antworten
Alt 27.06.2008, 08:54   #6
Farkarich
Senior Member
 
Registriert seit: 19.09.2000
Alter: 40
Beiträge: 122


Farkarich eine Nachricht über ICQ schicken
Standard

@ wbendl

hi ganz genau, und danach es bei der problemstellung geht dass man keine "sonderzeichen" festlegt finde ich wär eben die lösung mit dem asci am einfachsten, weil sonst hast eben probleme festzulegen welche zeichen müssen alle replaced werden,

mit meiner lösung wird einfach nur der bereich angegeben der erlaubt ist und der rest is ausgeschlossen..

mfg
Bernd
Farkarich ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:24 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag