So funktioniert JustAnswer:

  • Fragen Sie einen Experten
    Tausende Experten in über 200 Kategorien.
  • Erhalten Sie eine professionelle Antwort
    Per E-Mail oder sofortiger Benachrichtigung, während Sie auf unserer Website warten.
    Stellen Sie ggf. weitere Anschlussfragen.
  • 100%ige Zufriedenheit garantiert
    Bewerten Sie die erhaltene Antwort.

Stellen Sie Ihre Frage an IT-Fachinformat...

IT-Fachinformatiker
IT-Fachinformatiker, Systemadministrator
Kategorie: Computer
Zufriedene Kunden: 6838
Erfahrung:  Software Entwicklung, Projekt Erfahrung, Windows-Netzwerke, Linux-Netzwerke, Windows/Linux-Server
32504664
Geben Sie Ihre Frage in der Kategorie Computer hier ein
IT-Fachinformatiker ist jetzt online.

Ich habe eine Aktualisierungsabfrage in der Tabelle (Microsoft

Kundenfrage

Ich habe eine Aktualisierungsabfrage in der Tabelle (Microsoft Access) für ein neues Feld TX1 von Feld TX erstellt. 'Links([TX];InStr([TX];"DEUTSCHLAND")+16)'. Nun das Problem: Eine Aktualisierung sollte nicht erfolgen, wenn 'Deutschland' nicht in Großbuchstaben geschrieben ist. Wie ist dies möglich?
Gepostet: vor 6 Jahren.
Kategorie: Computer
Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo, Access kann überhaupt nicht so endscheiden, wie Sie es wünschen weil Access dafür nicht programmiert wurde d.h. Microsoft hat solche Funktionen aus mir unbekannten Gründen nicht aufgenommen es geht aber doch und zwar mit der StrComp()-Funktion:


Man kann die VBA-Funktion StrComp() verwenden, um zwischen Groß- und Kleinschreibung (übrigens auch zwischen "ss" und "ß") zu unterscheiden. Angenommen, FeldX soll mit einem Kriterium "abc" verglichen werden. Als Ergebnis soll nur diese klein geschriebene Variante kommen, nicht "ABC", "Abc", "aBc" etc. Dafür legst du ein neues Abfragefeld an, in dem folgender Ausdruck steht:

StrComp([FeldX];"abc";0)

Die 0 hinten (für den Parameter Compare) sorgt für den nötigen binären Vergleich. Nur wenn die verglichenen Werte in ihrer Schreibweise exakt übereinstimmen, liefert StrComp() den Rückgabewert 0 (s. <F1> zu "StrComp"). Du kannst daher die Treffer rausfiltern, indem du in der Kriterienzeile des Feldes schreibst: 0
s.a. http://support.microsoft.com/?kbid=209674

MIt dem gleichen Vorgehen kann man bei einer Verknüpfung zwischen Groß- und Kleinschreibung in den verknüpfenden Feldern unterscheiden, indem man eben wie o.a. ein zusätzliches Feld mit dem binären StrComp-Vergleich für die beiden Verknüpfungsfelder einsetzt. In SQL wäre das z.B.:

SELECT *
FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.FeldX = Tabelle2.FeldX
WHERE StrComp(Tabelle1.FeldX, Tabelle2.FeldX, 0) = 0

siehe auch: http://support.microsoft.com/?kbid=244693

Sie sollten dies mal testen, das dürfte zum Erfolg führen natürlich müssen Sie Ihren VBA-Code bzw. Abfrage entsprechend modifizieren. Für weitere Fragen stehe ich gern zur Verfügung.

Gruss Günter


Kunde: hat geantwortet vor 6 Jahren.

Mit der Antwort komme ich nicht weiter. Nachfolgend meine bisherige Akualisierungsabfrage in SQL Ansicht:

UPDATE Ausschreibung SET Ausschreibung.TX1 = Left([TX],InStr([TX],"DEUTSCHLAND")+16)
WHERE (((Ausschreibung.CY) Like "*DE*") AND ((Ausschreibung.PD)=GetAbfrageDatum()));

Was muß hier ergänzt werden, damit nur Deutschland in Großbuchstaben ausgeführt wird?

Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo, also Sie haben den Fehler bereits im Ansatz Ihre Abfrage:

UPDATE Ausschreibung SET Ausschreibung.TX1 = Left([TX],InStr([TX],"DEUTSCHLAND")+16)
WHERE (((Ausschreibung.CY) Like "*DE*") AND ((Ausschreibung.PD)=GetAbfrageDatum()))

Sie müssten also aus:

WHERE (((Ausschreibung.CY) Like "*DE*") AND ((Ausschreibung.PD)=GetAbfrageDatum()))

das folgende machen:

WHERE (((StrComp(TAusschreibung.CY, "DEUTSCHLAND", 0) = 0)) AND ((Ausschreibung.PD)=GetAbfrageDatum()))

Gruss Günter

P.S. Ich habe die o.a. Abfrage jetzt aus dem Kopf konstruiert es könnte sein, das eine Klammer zu viel oder zu wenig ist!


Verändert von IT-Fachinformatiker am 13.07.2010 um 18:37 Uhr EST
Kunde: hat geantwortet vor 6 Jahren.

Hallo Günther,

 

die beim letzten Mal mitgeteilte Abfrage funktioniert - allerdings ohne Unterscheidung zwischen Groß- und Kleinschreibung. Ihre modifizierte Form funkioniert nicht.

Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo, dann setzen Sie evtl. ein LCase davor dann wäre es analog zur o.a. Beschreibung Syntax: String=LCase(NewString) das müssen Sie einfach dazwischen setzen, ich hoffe das das dann funktioniert ansonsten bin ich da auch fast am Ende meines Lateins habe an LCase gedacht weil: StrComp([FeldX];"abc";0) nur abc raus liefert nix anderes daher LCase("DEUTSCHLAND") dann würds mit dem Prüfwert 0 in der Abfrage auch passen. Gruss Günter
Kunde: hat geantwortet vor 6 Jahren.
Die LCase Funktion hilft nicht weiter, da ich die Großbuchstaben zur Filterung benötige. Grundsätzlich wäre die Frage zu klären: Ist es in Access möglich, eine Abfrage zu erstellen, die in einem Textfeld mit umfangreichen Text nur "DEUTSCHLAND" in Großbuchstaben und nicht "Deutschland" in normaler Schreibweise filtert.
Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
nein, dies ist so NICHT möglich da man normalerweise solche Abfrage nicht benötigt es ist unüblich diese Art von Unterscheidung zu tätigen daher beherrscht nicht jedes DBMS die Unterscheidung. Sie werden nur mit StrComp() ans Ziel kommen. Sie sollten sich die entsprechende Dokumentation anschauen. Mir ist auch nicht ganz klar, warum Sie GROSSBUCHSTABEN benötigen sicherlich wird das seinen Sinn haben aber der erschließt sich mir zur Zeit noch nicht. Übrigens: Nach LCase und dem Resultat können Sie den String da Sie ihn ja eindeutig gefunden haben mit UCase wiederherstellen. Access kann von Haus aus keine Unterscheidung machen, der Grund ist das dies normalerweise auch überhaupt nicht sinnvoll ist und wenn es doch benötigt wird, dann muss man entsprechend den Umweg über VBA machen. Ich denke aber, das die o.a. Lösung auch funktionieren sollte wenn Sie sie entspreched Ihren Bedürfnissen anpassen. Eines fällt mir aber noch ein: In dem Modul, in dem Sie die VBA-Funktion aufrufen muss als erstes: Option Compare stehen.

Gruss Günter

P.S. Wenn Sie Option Compare setzen, dann muss die Anweisung:

WHERE (((StrComp(TAusschreibung.CY, "DEUTSCHLAND", 0) = 0)) AND ((Ausschreibung.PD)=GetAbfrageDatum()))

auch ohne LCase funktionieren, da VBA nun den String auch zwischen GROSS und klein unterscheiden kann!

Verändert von IT-Fachinformatiker am 14.07.2010 um 07:54 Uhr EST
Kunde: hat geantwortet vor 6 Jahren.
Das Problem ist unten den gegebenen Voraussetzungen wohl über eine SQL Abfrage nicht zu lösen. Eine aufwendige VBA Prozedur ist unausweichlich, was ich eigentlich vermeiden wollte.
Experte:  IT-Fachinformatiker hat geantwortet vor 6 Jahren.
Hallo, ja aber ohne VBA kommen Sie an einer Lösung nicht herran ich habe Ihnen nährungsweise erklärt, wie Sie mit VBA und SQL eine Lösung entwickeln können das dies kompliziert ist, ist logisch da Sie auch GROSSBUCHSTABEN filtern wollen und dies von SQL (bzw. Access) nicht unterstützt wird. Daher muss man mit Hilfe von StrComp() eine entsprechende Lösung erarbeiten Sie haben hier nun erfahren, wie Sie an eine Lösung kommen eigentlich sollten Sie sehr schnell eine entwickeln, da Sie ja mehr als die halbe Miete im Kasten haben. Ich stehe Ihnen natürlich gern weiter hzur Verfügung.
Gruss Günter

Bekannt aus:

 
 
 
„[...]mehr als Zehntausend Experten weltweit; 1500 davon in Deutschland. Acht Jahre nach dem Start ist das [...] Online-Unternehmen mit seinen 90 Mitarbeitern die größte Web-Seite für das Vermitteln von Experten von Anwälten über Ärzte bis hin zu Universitätsprofessoren.“
„Wer eine fachmänische Lösung für ein medizinisches, rechtliches oder technisches Problem sucht, kann das jetzt auch im Internet tun. Lebenshilfe auf die schnelle, unkomplizierte und vor allem erschwingliche Art bietet die Seite www.justanswer.de. Etwa 1500 Experten stehen per Mail für Fragen zu ca. 200 Fachgebieten rund um die Uhr zur Verfügung."
„Rat gewünscht? Rechtliche, medizinische oder allgemeine Fragen beantworten Experten unter www.justanswer.de."
„JustAnswer, die weltweit führende Online-Plattform für Expertenfragen und -antworten, bietet ab sofort noch mehr Sicherheit und Qualität für Verbraucher."
„Ob Vorbereitung, Notfall oder Reklamation nach dem Urlaub - JustAnswer bietet jederzeit schnelle, kompetente Antworten"
„Die Online-Plattform JustAnswer bringt Ratsuchende und Experten in über 200 Fachgebieten zusammen."
 
 
 

Was unsere Besucher über uns sagen:

 
 
 
  • Ich bedauere, dass ich nicht gleich bei Ihnen gelandet bin. Die Leerung des Cache hat das Problem gelöst. Danke Gerd Schönbuchner Grafrath
< Zurück | Weiter >
  • Ich bedauere, dass ich nicht gleich bei Ihnen gelandet bin. Die Leerung des Cache hat das Problem gelöst. Danke Gerd Schönbuchner Grafrath
  • Endlich ein Experte, der mir wirklich weiterhelfen konnte! DANKE! JustAnswer Kunde Taunusstein
  • Ihre Antwort hat mir sehr geholfen, die richtigen Entscheidungen zu treffen. Dass Sie mir darüber hinaus noch 2 Empfehlungen gegeben haben fand ich super. Vielen Dank! JustAnswer Kunde Freiburg
  • Die ausgearbeiteten Hilfen waren gut strukturiert, leicht verständlich und zu 100% hilfreich für mich. Vielen Dank Markus B. Karlsruhe
  • Sehr schnelle und kompetente Antwort, die für mich bares Geld bedeutet. Vielen Dank! S.Stober K.
  • Herzlichen Dank! Hab durch Ihre Antwort viel Geld gespart! Ben R. Deutschland
  • Sehr schnelle und kompetente Hilfestellung. Besonders für mich als Laien wurde alles sehr verständlich erklärt. Gerne wieder! Rosengl Bad Tölz
 
 
 

Lernen Sie unsere Experten kennen:

 
 
 
  • Tronic

    Tronic

    IT-Specialist

    Zufriedene Kunden:

    2269
    Elektroniker und EDV-Service
< Zurück | Weiter >
  • http://ww2.justanswer.com/uploads/PY/Pyroflash/2011-4-21_104934_tronic.64x64.jpg Avatar von Tronic

    Tronic

    IT-Specialist

    Zufriedene Kunden:

    2269
    Elektroniker und EDV-Service
  • http://ww2.justanswer.com/uploads/rufushoschi/2010-11-08_135947_bild.jpg Avatar von IT-Fachinformatiker

    IT-Fachinformatiker

    Systemadministrator

    Zufriedene Kunden:

    6338
    Software Entwicklung, Projekt Erfahrung, Windows-Netzwerke, Linux-Netzwerke, Windows/Linux-Server
  • http://ww2.justanswer.com/uploads/COMINAROSA/2010-02-03_172238_PASSBILD.JPG Avatar von COMIN IT-Service

    COMIN IT-Service

    Dipl.-Ing.

    Zufriedene Kunden:

    779
    Dipl.Ing (FH) ET, NT, IT
  • http://ww2.justanswer.com/uploads/RaubergerConcep/2010-03-02_102740_Portraet64.jpg Avatar von RaubergerConcept

    RaubergerConcept

    IT-Specialist

    Zufriedene Kunden:

    234
    Mehr als 10 Jahre Erfahrung in Softwareentwicklung und Netzwerktechnik
  • http://ww2.justanswer.com/uploads/LF/lfalkenburg/2015-2-8_01843_.64x64.jpg Avatar von Lutz Falkenburg

    Lutz Falkenburg

    IT-Specialist

    Zufriedene Kunden:

    96
    Seit über 20 Jahren beruflich im IT-/IUK-Bereich tätig. Egal ob EinzelPC der Netzwerk...
  • http://ww2.justanswer.com/uploads/BI/BigDaddyXD/2012-10-24_20126_WhySoSeriousJob.64x64.jpg Avatar von BigDaddyXD

    BigDaddyXD

    Informatiker

    Zufriedene Kunden:

    1588
    Microsoft Certified Professional, Microsoft Certified Desktop Support Technican,...
  • http://ww2.justanswer.com/uploads/PU/Pucky80/2011-5-14_54537_pucky80.64x64.jpg Avatar von Pucky80

    Pucky80

    IT-Systemkaufmann

    Zufriedene Kunden:

    1322
    MCITP (Microsoft Server 2008 Enterprise Administrator)
 
 
 

Ähnliche Fragen in der Kategorie Computer