Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: HaNe am September 28, 2018, 12:04:38

Titel: Probleme mit MID
Beitrag von: HaNe am September 28, 2018, 12:04:38
Ein herzliches Glück Auf an Alle,

ich hab ein kleines Problem mit der Funktion MID in Access 2007. Ich will dies verwenden, um in einer Abfrage bestimmte Stellen aus einer Zahl auszulesen. Es geht im aktuellen Fall um einen Barcode, welcher in einer Zahlenfolge bestimmte Codes stehen hat, welche ich zum Auswerten brauche.
Left und Right klappt ohne Probleme. Nur bei MID steht immer im Ergebnis der Wert bis zum Ende der Zahl.
z.B. hab ich eine 8stellige Zahl und will die Stellen 6 und 7 auslesen.
=Teil([barcode],6,2) - es liest mir aber die Stellen 6,7 und 8 aus.
Was mache ich falsch?

Glück Auf
HaNe
Titel: Re: Probleme mit MID
Beitrag von: Lachtaube am September 28, 2018, 12:09:34
Ein Fehler ist nicht erkennbar.

Aus dem VBA-Direktfenster:barcode="12345678"
?Mid(barcode, 6, 2)
67
Titel: Re: Probleme mit MID
Beitrag von: HaNe am September 28, 2018, 12:46:10
woran kann es dann liegen, dass mir mehr stellen ausgegeben werden, als ich angegeben habe?
Titel: Re: Probleme mit MID
Beitrag von: steffen0815 am September 28, 2018, 14:13:30
Hallo,
ich würde sagen, das kann nicht sein!!
Zitat=Teil([barcode],6,2) - es liest mir aber die Stellen 6,7 und 8 aus.
Dieser Code kann definitiv nur 2 Stellen ausgeben.
Kontrolliere deine "Versuchsanordnung".

Ps: Was mich wundert, dass du mit "," arbeitest? Schweizer Version !?
Titel: Re: Probleme mit MID
Beitrag von: HaNe am September 28, 2018, 16:02:20
Hallo Steffen,

tut mir Leid, aber es klappt wirklich nicht. Es werden, trotz 2 geforderter Stellen, 3 oder mehr ausgegeben. Ich habe ein deutsche Version. Sobald ich ein ";" eingebe kommt eine Fehlermeldung. Ich habe das jetzt bei Zahlen und bei Text probiert und habe immer wieder dieses Problem.
Zuätzlich wollte ich es in einem Formularkopf testen....da kommt der selbe Fehler.

Kann es manchmal sein, dass ich irgendwo eine "Grundeinstellung" ändern muss oder könnte das eine Updategeschichte sein? Ich weiß...es ist die 2007er Version, aber bis heute hat alles wunderbar funtioniert.
Ich weiß mir echt keine Rat mehr

GlückAuf
HaNe
Titel: Re: Probleme mit MID
Beitrag von: DF6GL am September 28, 2018, 16:18:56
Hallo,

schreib mal so in einem Feld (Spalte) im Abfrageentwurf:

Feld:         Txt: Teil([Barcode];6;2)
Titel: Re: Probleme mit MID
Beitrag von: Lachtaube am September 28, 2018, 16:45:14
Ob Komma oder Semikolon richtig ist, wird durch die Windows Systemeinstellung für das Listentrennzeichen geregelt. Am unverfänglichsten ist, den Code direkt in der SQL-Ansicht der Abfrage einzutippen.

PS: Um sicherzustellen, dass keine Defekte in der Datenbank das merkwürdige Verhalten hervorrufen, könntest Du sämtliche Objekte in eine neue Datenbank importieren.
Titel: Re: Probleme mit MID
Beitrag von: HaNe am September 29, 2018, 10:48:26
Hallo nochmal,

zuerst vielen Dank an alle Unterstützer. Ich hab den Fehler gefunden und war ziemlich erstaunt. Ich habe wie angegeben die Formel folgendermaßen eingegeben: Mitte:Teil([barcode],6,2) und das Ergebnis war immer, wie oben beschrieben. Der Tipp mit der SQL-Ansicht hat mir geholfen. Acces hat hier folgendes angezeigt.... Mitte:Teil([barcode],6.2). Access hat also das letzte Komma in einen Punkt gewandelt. Warum und wieso....keine Ahnung. Jedenfalls habe ich den Punkt in SQL in ein Komma geändert und siehe da, es klappt.
Also nochmal VIELEN DANK an alle Helfer und ein schönes Wochenende.

GlückAuf
HaNE
Titel: Re: Probleme mit MID
Beitrag von: MzKlMu am September 29, 2018, 11:00:10
Hallo,
hier geht wohl doch einiges durcheinander.
In der Entwurfsansicht einer Abfrage sind bei einem deutschen Access Semikolons statt Komma zu verwenden. Also so:
Mitte:Teil([barcode];6;2)
Bei Umschaltung in SQL sieht das dann so aus:
Mid([barcode],6,2) As Mitte

In SQL steht da niemals Teil.

Hinweis:
Prüfe mal in der Systemsteuerung die Ländereinstellung.

Titel: Re: Probleme mit MID
Beitrag von: Lachtaube am September 29, 2018, 12:36:42
Sechs Komma Zwei wird zur Ganzzahl 6 gerundet. Und weil die Mid (https://support.office.com/de-de/article/mid-funktion-427e6895-822c-44ee-b34a-564a28f2532c)-Funktion auch nur mit dem Startwert als zweites Argument ausreichend versorgt ist, wird die Funktion alles ab dem 6. Zeichen ausgegeben.
Unklar ist, warum das Komma nach [barcode] nicht bemängelt wurde?!
Titel: Re: Probleme mit MID
Beitrag von: HaNe am September 30, 2018, 16:40:21
Hallo MzKlMu,
ich hab nochmal die Ländereinstellung geprüft. Da steht alles normal auf Deutsch. Keine Ahnung, warum das solche Probleme macht. Ich hab mich schon gewundert, warum ich ein Komme statt Semikolon eingeben musste, das es überhaupt funktioniert. Ich habe schon daran gedacht, dass mir eine generelle Einstellung eine Streich spielt. Aber welche.....das ist wohl die Frage.
Total verrückt ist nun auch noch....wenn ich diese Abfrage, als Abfrageentwurf öffne, wandelt es das Komma wieder in einen Punkt. Wenn ich die Abfrage normal öffne - also ohne Entwurfsansicht - funktioniert es.
Schon alles sehr, sehr merkwürdig.
Achso, ich verwende Windows 7

GlückAuf
HaNe
Titel: Re: Probleme mit MID
Beitrag von: HaNe am September 30, 2018, 16:44:37
Zitat von: Lachtaube am September 28, 2018, 16:45:14
Ob Komma oder Semikolon richtig ist, wird durch die Windows Systemeinstellung für das Listentrennzeichen geregelt. Am unverfänglichsten ist, den Code direkt in der SQL-Ansicht der Abfrage einzutippen.

PS: Um sicherzustellen, dass keine Defekte in der Datenbank das merkwürdige Verhalten hervorrufen, könntest Du sämtliche Objekte in eine neue Datenbank importieren.

Eine Frage hierzu hätte ich doch noch. Ich habe gerade mal nachgeschaut. Das Listtrennzeichen ist bei mir ein Komma. Wäre es günstig, dies in ein Semikolon zu ändern?

GlückAuf
HaNe
Titel: Re: Probleme mit MID
Beitrag von: DF6GL am September 30, 2018, 16:51:08
Hallo,

das könnte nicht schaden...   Wäre jedenfalls dem Standard näher und sorgte nicht für solche Verwirrungen ;)

Vorausgesetzt, es steht nicht eine andere Anwendung, die das Semikolon nicht verwenden (erkennen) kann im Wege..
Titel: Re: Probleme mit MID
Beitrag von: Lachtaube am September 30, 2018, 16:59:26
Wenn das Listentrennzeichen ein Komma ist,kollidiert dieses mit dem deutschen Dezimaltrennzeichen, welches i.d.R. das Komma ist. Ändert man das Dezimaltrennzeichen zu einem Punkt, so kollidiert dieser mit dem deutschen Datumstrennzeichen. Eine Änderung der Symbole ist deshalb meistens nur sinnvoll, wenn man alle Symbole behandelt. Das kann durch eine für ein Land typesches Schema geschehen, wofür es Vorauswahlen gibt.

Also lange Rede kurzer Sinn - wenn Du mit deutschen Ländereinstellungen werkelst, verwende das Semikolon. Amerikaner würden das Komma wählen.