Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Funktion "Ersetze" in Access 2010

Begonnen von fautec56, Juli 23, 2013, 16:48:34

⏪ vorheriges - nächstes ⏩

fautec56

Hallo,

ich bin hier neu und hab zu meiner Frage nichts passendes gefunden.

Es gibt in Access die Funktion "Ersetzen". Ich habe diese versucht zu nutzen, um Telefonnummern zu ändern.

Es sollte so sein, dass wenn eine "0-" gefunden wird dies ersetzt wird mit "+49"

Es klappt auch, aber wenn die gleiche Kombination innerhalb der Telefonnummer nochmal kommt, wird diese ebenfalls ersetzt.

Hier mein Abfrage:

Telefon_: Wenn([Telefon];Ersetzen([Telefon];"0-";"+49-";1;1);Nicht Null)

Ergebnis:
aus 0-2323-209-170  wird +49-2323-209-170

aber auch

0043-3862-2+49-37266  hier war vorher 0043-38620-37266


Kennt sich einer mit dieser Funktion aus? Es darf nur in den ersten zwei Zeichen gesucht werden. Nicht der ganze String.


Fautec56



Grüße aus der ältesten Stadt des OberBergischen
Reinhard, DG5KAC

DF6GL

#1
Hallo,

wenn grundsätzlich nur die ersten (2) Ziffern berücksichtigt werden sollen, dann müssen vom  Ausgangsstring zunächst diese Zeichen abgetrennt werden, sodann ersetzt und mit dem Rest-String wieder zusammengesetzt werden.


Replace(Left([Telefon], 2), "0-", "+49-") & Mid([Telefon], 3)

fautec56

Danke für die schnelle Hilfe. :-*

mit       Telefon_: Ersetzen((Links([Telefon];2));"0-";"+49-") & Teil([Telefon];3)  klappt es nun.

Jedoch hab ich jetzt bei dem Import in die Tabelle die Fehlermeldung, dass es Umwandlungsfehler gibt. Das nervt.
Grund dafür leeren Datensätze ( keine Telefonnumer vorhanden ). Hier wird nun eine Fehlermeldung eingetragen.  #Fehler

Ich hatte das vorher mit einer Wennabfrage abgefangen (siehe meinen Eintrag). Bei der neuen Abfrage bekomme ich die WennAbfrage aber nicht mehr eingebaut.
Es endet immer wieder bei einer Fehlermeldung.

Hast Du da ebenfalls eine Lösung?


Ich hätte dann noch eine Ungereimtheit beim Export, aber dazu würde ich gerne später was fragen?

Grüße aus der ältesten Stadt des OberBergischen
Reinhard, DG5KAC

MzKlMu

Hallo,
versuche es mal mit der Formel.
Telefon_: Wenn(Links([Telefon];2)="0-";"+049-" & Teil([Telefon];3);[Telefon])
Kommt ohne Ersetzen aus.
Gruß Klaus

DF6GL

Hallo,

bei meinem Vorschlag wäre noch die nz()-Funktion erforderlich, beim Vorschlag von MzKlMu ist sie überflüssig.

Telefon_: Ersetzen((Links(nz([Telefon];"");2));"0-";"+49-") & Teil([Telefon];3)

fautec56

Danke, das funktioniert.   :-*

Jetzt meine letzte angedrohte Frage.

Export einer Tabelle
Ich exportiere die Daten einer Tabelle nach Excel. Die Kontaktdaten werden daraus in Outlook importiert.
Grund dafür ist, dass ich auf einem Arbeitsplatz nur fehlerhaft dierekt aus der Tabelle Kontakt die Daten importuieren kann.
Mit Excel geht es. weiss nicht warum!
Ok. Soweit ganz gut. Ich hatte anfangs den Export über ein Macro ausgeführt. Funktionierte!!
Dann nicht mehr. Outlook beschwert sich über das Format.
Wenn ich jedoch den export manuell durchführe, funktioniert der Import in Outlook ohne Probleme.
Ich gehe davon aus, dass irgend etwas mit der Formatierung nicht stimmt. Beim manuellen Export ist keine Formatierung zu sehen.
Ich arbeite mit Access 2010. Beim erstellen des Macros finde ich jedoch nur eine Funktion ExportierenMitFormatierung.
Oder was Übersehen? ich glaube nicht.

Für Outlook muss ich das Ausgabeformat"Excel 97 - Excel 2003-Arbeitsmappe (*.xls)" nutzen.


So das war es.
Nochmals Danke für deine beiden Hilfen.








Grüße aus der ältesten Stadt des OberBergischen
Reinhard, DG5KAC


fautec56

Ja, da kommt der gleiche Fehler.


??
Du DF6GL   AFU ?

ich DG5KAC  ;)
Grüße aus der ältesten Stadt des OberBergischen
Reinhard, DG5KAC

DF6GL

DG5KAC de DF6GL + QSL

kann zu dieser Konstallation (mit Makros) schlecht Näheres sagen.


Würde aber an dieser Stelle nachhaken:

"nur fehlerhaft dierekt aus der Tabelle Kontakt die Daten importuieren kann."

Was heißt das? WIE wird importiert, welche Fehler treten auf?



73 es 55 de DF6GL

fautec56

Ganz normaler import über Outlook

Datei/öffnen/import

Auswahl:
Aus anderern Programmen oder Dateien importieren

weiter

Microsoft Excel 97-2003

weiter

Datei aussuchen kontakte.xls

Syncordner aussuchen und ab die Post.


Es hat ja ein paar Mal über das Macro geklappt. Das ist ja das verrückte.

Fehlermeldung siehe JPG-Datei


55 73 DG5KAC


[Anhang gelöscht durch Administrator]
Grüße aus der ältesten Stadt des OberBergischen
Reinhard, DG5KAC

DF6GL

Hallo,

hast Du die angegebenen Fehlersituationen auch mal überprüft und ausgeschlossen?



fautec56

Ja. Ich kann die Datei ganz normal aufrufen.
Die Datei die Tabelle, die ich manuell exportiere, liegt im gleichen Verzeichnis.
Die Rechte sind die gleichen. Ich habe die die Datei schon mal in einen anderen Ordner lokal abgelegt. Die gleiche Fehlermeldung.

Das hab ich alles schon überprüft.  :-\  :'(
Grüße aus der ältesten Stadt des OberBergischen
Reinhard, DG5KAC

DF6GL

Hallo,

"Das hab ich alles schon überprüft."


Ab 2007 gibt es die "vertrauenswürdigen Speicherorte" , die in der jeweiligen Office-Anwendung unter "Optionen Sicherheitseinstellungen"  zu definieren sind, außerdem der Zugriff auf Makros und VBA-Prozeduren.  Insofern solltest Du diese Einstellungen überprüfen.


fautec56

Hallo,

werde ich überprüfen. Jedoch sehe ich da keine Logik. Denn wenn ich den Export manuell durchführe, ( auf Tabelle mit Mauszeiger und rechte Maustaste/Export ) klappt alles.
Es ist auch das gleiche Verzeichnis, wo die Tabelle dann liegt.

Ich werd´s prüfen.  :'(
Grüße aus der ältesten Stadt des OberBergischen
Reinhard, DG5KAC

fautec56

so, alles geprüft, nichts zu finden.

Ich hab es jetzt in VBA eingebaut. Da Kann ich Formatieren, oder es bleiben lassen.

Hier das funktionierende Modul. Ich fand es so in etwa im WEB und hab entsprechend angepasst und in mein Menü eingebunden.

Sub ExportKontakte()

Dim xlAnw As Object

' Export

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Kontakte", "O:\Auswertungen\Officeline\Kontakte\Kontakte.xls", , "Kontakte"


' Nun werden die Daten in Excel formatiert

Set xlAnw = CreateObject("excel.application")
xlAnw.Visible = False ' läuft unsichtbar im Hintergrund
xlAnw.Workbooks.Open FileName:="O:\Auswertungen\Officeline\Kontakte\Kontakte.xls"
xlAnw.Sheets("Kontakte").SELECT
xlAnw.Rows("1:1").SELECT
' xlAnw.Selection.Font.Bold = True ' Schrift = Fett
xlAnw.Cells.SELECT
' xlAnw.Selection.Columns.AutoFit ' optimale Zellenbreite
xlAnw.activeWorkbook.Save
xlAnw.activeWorkbook.Close
xlAnw.Quit
Set xlAnw = Nothing

End Sub


Vielen Dank für deine Mühe, insbesondere für die ersten Lösungen.

55 73  -.-.  --.-  -..  --.  ....  -.-  .-  -.-.

;)


Grüße aus der ältesten Stadt des OberBergischen
Reinhard, DG5KAC