Hallo,
warum erhalte ich hier einen Fehlermeldung
Dim wert As String
wert = "test"
Dim intx As Integer
intx = DCount("*", "meineTabelle", "Feld1= '" & wert & "' and Feld2= '" & wert"'")
Hallo,
weil beim letzten wert der "&"-Operator fehlt....
Supi Danke
wenn man den Wald vor......
Hey, nun stellt sich aber doch noch eine Frage
Kann man die Datenherkunft beim DCount auch das SQL Statement als Variable eingeben und wenn ja wie
Danke
HDH
Dim sql as string
sql = "mein SQL string"
intx = DCount("*", "sql", "Feld1= '" & wert & "' and Feld2= '" & wert & "'")
Übrigens wenn ich den sql String als SQL in einer Abfrage im Entwurf eintrage und dann ausführe funktioniert er einwandfrei.
Hallo,
bei Dcount() geht das nicht.
Als Alternative:
Dim strSQL as String, intX as Long, strWert as String, DB as Database
Set DB = Currentdb
strWert = "abcd"
strSQL = "Select Count(*) from tblTabelle Where Feld1= '" & strWert & "' and Feld2= '" & strWert & "'"
intX= DB.OpenRecordset(strSQL, dbOpenSnapShot)(0)
MsgBox intX
Set DB = Nothing
Hey, er zählt zwar so aber wenn ich meinen SQL String davor sezte geht nichts. Dann zählt er falsch was mache ich beim Zusammenbauen falsch, bzw. was übersehe ich hier
Hier mal meinen Code zum Zusammenbauen
'Dim DB As DAO.Database
'Dim rst As DAO.Recordset
Dim a As Integer
' Set DB = CurrentDb
Dim wert As String
Dim Bezeichner As String
Dim Anz As String
Dim intX As Integer
Dim sql As String
Dim t As String, v As String
Dim Wert1 As String
Wert1 = "Nicht Win 7 oder Manndeckung"
If Me.KOonline = -1 Then
t = t & v & "OnlineSchulung= -1"
v = " OR "
Else
t = t & v & "OnlineSchulung= 0"
v = " OR "
End If
If Me.KOGutberaten = -1 Then
t = t & v & "GutBeraten= -1"
v = " OR "
Else
t = t & v & "GutBeraten= 0"
v = " OR "
End If
If Me.KOAusschluss = -1 Then
t = t & v & " ((Not (tblZeiterfassung.[Thema der Schulung AD])=""Win 7"" OR (tblZeiterfassung.[Thema der Schulung AD])=""Manndeckung""))"
v = " OR "
End If
sql = "SELECT tblZeiterfassung.* FROM tblZeiterfassung Where " & t & ";"""
'Me.Text24 = sql
Dim strSQL As String, intXX As Long, strWert As String, DB As Database
Set DB = CurrentDb
strWert = "test"
strSQL = "Select Count(*) from tblZeiterfassung Where " & t & " And [Thema der Schulung AD]= '" & strWert & "' Or Schulungsthema2AD= '" & strWert & "' Or Schulungsthema3AD= '" & strWert & "';"
Me.Text24 = strSQL
intXX = DB.OpenRecordset(strSQL, dbOpenSnapshot)(0)
MsgBox intXX
Set DB = Nothing
Ein Beispiel SQL sieht dann wie folgt aus
Select Count(*) from tblZeiterfassung Where OnlineSchulung= -1 OR GutBeraten= 0 OR ((Not (tblZeiterfassung.[Thema der Schulung AD])="Win 7" OR (tblZeiterfassung.[Thema der Schulung AD])="Manndeckung")) And [Thema der Schulung AD]= 'test' Or Schulungsthema2AD= 'test' Or Schulungsthema3AD= 'test';
Er findet dann aber immer alle DS
Danke
HDH
Hallo,
setz mal "Win 7" und "Manndeckung" zwischen Hochkomma und nicht zwischen Gänsefüße..
Zudem sind zusammenhängende OR-Bedingungen zu klammern. Inwieweit die Where-Condition nun logisch die Erwartungen erfüllen kann, musst Du selber ergründen.
Kopiere den SQL-String und setze ihn bei einen neuen Abfrageentwurf in das SQL-Ansicht-Fenster. Prüfe dann, ob die Kriterien passend sind.
Hallo Franz,
sol läuft es durch, aber ob es nun das Ergebnis ist (SQL) muss ich noch schauen. Mache mir heute erstmal noch einen kleineren Testbestand als den Echten, da sind zu viele Daten drin.
Gebe noch eine Rückmeldung spätestens morgen
Danke
HDH
Hallo Franz
noch eine Frage dazu
Ist es richtig, daß die Reihenfolge innerhalb der Where Bedingung auch ein Rolle spielt wegen "und' "oder" ? Kann man daß irgendwo nachlesen?
Habe noch was gefunden, Solln ich die "AND" und "OR" Dcdizuri mit Klammern Gruppieren? Das meint st Du doch mit QR-Bedingungen klemmen oder?
Der AND-Vergleichsoperator hat Vorrang vor dem OR-Vergleichsoperator. Analog zur Algebra, wo Punkt- vor Strichrechnung beim Auswerten gilt, kann man durch Klamersetzung die Rangordnung von Ausdrücken beeinflussen. X / Y + Z ergibt halt etwas anderes als X / (Y + Z) - analog dazu, wäre in einem SQL-Kriterium X AND Y OR Z etwas anderes wie X AND (Y OR Z), wobei X, Y und Z im SQL-Beispiel jeweils als Wahrheitsausdrücke zu verstehen sind. Welche der beiden Formen richtig ist, muss der Anwender selbst wissen oder harausfinden.
Danke Nouba
Werde ich probieren und wenn ich nicht weiter komme, mal ne DemoDB zum Downloaden bereitstellen. Die habe ich mir Ebene schonmal gebastelt auch mit nur 10 DS
HDH
Wie jetzt, Norbert? Echt?
Gut zu wissen. Bin echt nicht mehr so oft im Forum wie früher unterwegs.
Gruß Andreas
Hatte mich vertan aber auch direkt gelöscht wieso siehst Du das