ich bin Access Anfänger und habe folgendes Problem.
Aus einer Excel Tabelle habe ich Datensätze in folgender Form in Access
eingebunden:
Kunden Nr Name Beruf
Strasse Ort PLZ
150996 KIRCHBERGER, PETER ANGESTELLTER
STRASSE 2 ORTSCHAFT 1 1234
Alle Feldeingaben sind in Großbuchstaben und der Name ist in einem Feld.
(Nachname und Vorname durch Komma getrennt)
In Access bräuchte ich die Datensätze jedoch in dieser Form
Kunden Nr Vorname Nachname
Beruf Strasse Ort
PLZ
150996 Peter
Kirchberger Angestellter
Strasse 2 Ortschaft 1 1234
Es handelt sich dabei um eine Kundendatenbank mit ca. 30000 Datensätzen.
Die Excel Tabelle wird öfters aktualisiert und ist immer in dieser Form.
Wie geht es am Besten die Datensätze in die 2 Form zu bringen.
Ich wäre Ihnen für die Hilfe dankbar.
mfg
Peter Kirchberger
"Peter Kirchberger" <p.kirc...@kirchberger.at> wrote
> Aus einer Excel Tabelle habe ich Datensätze in folgender Form
> in Access eingebunden:
> [...]
>
> Alle Feldeingaben sind in Großbuchstaben und der Name ist in
> einem Feld. (Nachname und Vorname durch Komma getrennt)
>
> In Access bräuchte ich die Datensätze jedoch in dieser Form
> [...]
>
> Es handelt sich dabei um eine Kundendatenbank mit ca. 30000
> Datensätzen.
>
> Die Excel Tabelle wird öfters aktualisiert und ist immer in dieser
> Form.
> Wie geht es am Besten die Datensätze in die 2 Form zu bringen.
falls Du nur eine Umwandlung der Grossbuchstaben, sowie die Verwendung
anderer Feldnamen benötigst, würde ich einfach weiterhin das sheet als link
in die DB einbinden (also nicht importieren) und lediglich bei der
DB-internen Verwendung eine Abfrage benutzen, sprich - die Tabelle wird
regulär nur über die Abfrage verwendet.
Innerhalb dieser Abfrage kannst Du dann sowohl eine Umwandlung der
Grossbuchstaben erreichen als auch die Feldnamen mittels Alias in die von
Dir gewünschte Form bringen.
Die Umwandlung der Grossbuchstaben ist allerdings nicht wirklich gut - Du
kannst mit Systemmitteln höchstens einen proper-case umsetzen (gib 'mal im
Direktfenster <<strconv("OLAF RABBACHIN",vbpropercase)>> ein), solltest Du
jedoch bestimmte Regularien haben, müsstest Du diese wiederum explizit per
code umsetzen.
Bis dann,
Olaf
---
My .02: www.Resources.IntuiDev.com
AccessFAQ: www.donkarl.com
KnowHow.mdb: www.freeaccess.de
danke für Deine rasche Antwort.
Deine Vorschlag die Tabelle nur einzubinden leuchtet mir ein und ist auch
Sinnvoll.
Nur mein Problem, wie gestalte ich die Abfrage um , um
1. die Umwandlung der Grossbuchstaben zu erreichen
2. das Namensfeld in Vor- und Nachname zu trennen.
Könntest Du mir dazu auch noch einen Vorschlag machen.
Vielen Dank.im Voraus
mfg
Peter
"Olaf Rabbachin" <Olaf.Ra...@IntuiDev.com> schrieb im Newsbeitrag
news:auk20n$3fi$07$1...@news.t-online.com...
Wie Olaf schon schrieb, kann das so halbwegs die Funktion StrConv.
Kannst du auch in Abfragen verwenden, musst dabei aber die
Konstantenwerte ohne Maskierung schreiben. In der Art:
StrKonv([DeinFeldMitDenNamen];3)
Probleme gibt's allerdings bei Doppelnamen usw. Also jedenfalls
das Ergebnis überprüfen.
> 2. das Namensfeld in Vor- und Nachname zu trennen.
Dafür gibt's Access-FAQ 2.20 Feldinhalte nachträglich trennen
Folge dort dem Link zum KB-Artikel.
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
Datenbankprofis: http://www.dbdev.org
<ad...@donkarl.com> wrote ...
> Peter Kirchberger schrieb:...
>> Nur mein Problem, wie gestalte ich die Abfrage um , um
>>
>> 1. die Umwandlung der Grossbuchstaben zu erreichen
>
> Wie Olaf schon schrieb, kann das so halbwegs die Funktion StrConv.
> Kannst du auch in Abfragen verwenden, musst dabei aber die
> Konstantenwerte ohne Maskierung schreiben. In der Art:
> StrKonv([DeinFeldMitDenNamen];3)
> Probleme gibt's allerdings bei Doppelnamen usw. Also jedenfalls
> das Ergebnis überprüfen.
>> 2. das Namensfeld in Vor- und Nachname zu trennen.
>
> Dafür gibt's Access-FAQ 2.20 Feldinhalte nachträglich trennen
> Folge dort dem Link zum KB-Artikel.
falls er aber ein Komma im Namen hat, sollte wohl split(...), bzw. bei
Versionen <A2K getSeparatedWord (bei www.mvps.org/access) ein brauchbares
Ergebnis bringen können - ich kenne jedenfalls niemanden, der ein Komma im
Namen hat. :-)
Bis dann,
Olaf
---
Bitte keine emails auf NG-postings.
Split ist für eine einzige zu trennende Stelle bissel übertrieben
und in Abfragen von A00 nur manchmal nutzbar, weil es erst
nachträglich und undokumentiert in irgendeinem SP in den
Expression Service inkludiert wurde.
> ...bzw. bei
> Versionen <A2K getSeparatedWord (bei www.mvps.org/access) ein brauchbares
> Ergebnis bringen können - ich kenne jedenfalls niemanden, der ein Komma im
> Namen hat. :-)
Kenne und finde ich dort nicht. Dev hat als erste String-Geschichte
eine für's Aufdröseln drin, die ganz ähnlich meiner aus der KB ist.
Ist ja auch recht naheliegend, die einfachsten Dinge zu verwenden.
In meinem Artikel und der dortigen Beispiel-mdb ist das Ganze
aber auch noch in Abfragen und sowohl für Leerstellen als auch
Komma vorgeführt bzw. erläutert.
Ich empfehle ihm daher weiterhin eher mein Zeug.
--
cu
danke für Eure Tips.
Das mit StrConv funktioniert und ist für meinen Zweck ausreichend.
Kann ich split(...) auch in Abfragen verwenden?
Mein Versuch mit
NName: split([name-1];", ";-1)
wobei name-1 das Feld mit dem Namen und Vornamen durch Komma getrannt ist,
schlägt fehl. Kann mir jemand sagen wie dieser Befehl aussehen muß.
Danke nochmals im Voraus,
Peter
PS: Guten Rutsch ins neue Jahr
"Olaf Rabbachin" <Olaf.Ra...@IntuiDev.com> schrieb im Newsbeitrag
news:auqgre$hg5$02$1...@news.t-online.com...
Theoretisch ja, praktisch nein. Außer Olaf postet einen Weg,
wie er das resultierende Array ohne Code auflöst.
Also IMO vergiss Split für diesen Fall und halte dich an die
schon geposteten Beispiele.
Außerdem solltest du bei weiteren Fragen deine Access-Version
verraten, denn die spielt dabei eine Rolle.
<ad...@donkarl.com> wrote ...
>> Kann ich split(...) auch in Abfragen verwenden?
>> ...
>
> Theoretisch ja, praktisch nein. Außer Olaf postet einen Weg,
> wie er das resultierende Array ohne Code auflöst.
ohne code geht's tatsächlich nicht - da mäkelt Access die Klammerung an :-).
Aber ein
?split("1,2,3,4",",")(2)
(-> drittes Element) in einem allgemeinen Modul reicht doch schon.
Und andere Lösungen dürften gleichfalls ein wenig code erfordern.
Da wäre ein performance-Test ganz interessant. :-)
> Also IMO vergiss Split für diesen Fall und halte dich an die
> schon geposteten Beispiele.
Wie wäre es denn mit einem Konstrukt á la ...
SELECT Trim(left(NachVorname,instr(1,NachVorname,",")-1)) AS Nachname,
trim(mid(NachVorname,instr(1,NachVorname,",")+1)) AS Vorname
FROM Wasauchimmer
ORDER BY NachVorname
Wenn immer sichergestellt ist, das dem Nachnamen ein Komma und dann der/die
Vorname(n) folgen, dürfte das auch schon ausreichen.
Wenn die Datenmengen allzu gross sind, würde ich aber auch wiederum in einem
kleinen Test prüfen, ob sich mit ein wenig code in einem allgemeinen Modul
die performance steigern liesse.
<ad...@donkarl.com> wrote ...
> Olaf Rabbachin schrieb:
>> <ad...@donkarl.com> wrote ...
>>> Peter Kirchberger schrieb:...
>
> Split ist für eine einzige zu trennende Stelle bissel übertrieben
> und in Abfragen von A00 nur manchmal nutzbar, weil es erst
> nachträglich und undokumentiert in irgendeinem SP in den
> Expression Service inkludiert wurde.
oops, tatsächlich? Aber - wer (ausser meinen Kunden, hüstel) verwendet schon
A2K? :-)
>> ...bzw. bei
>> Versionen <A2K getSeparatedWord (bei www.mvps.org/access) ein
>> brauchbares Ergebnis bringen können - ich kenne jedenfalls
>> niemanden, der ein Komma im Namen hat. :-)
>
> Kenne und finde ich dort nicht. Dev hat als erste String-Geschichte
> eine für's Aufdröseln drin, die ganz ähnlich meiner aus der KB ist.
> Ist ja auch recht naheliegend, die einfachsten Dinge zu verwenden.
Anscheinend hat Dev die Funktionen umbenannt - sie finden sich jetzt unter
...
http://www.mvps.org/access/strings/str0003.htm
> Ich empfehle ihm daher weiterhin eher mein Zeug.
Pöh. ;-)