collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 65
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 2
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13695
  • stats Beiträge insgesamt: 62165
  • stats Themen insgesamt: 8469
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: dcount  (Gelesen 157 mal)

Offline HDM

  • Newbie
  • Beiträge: 28
dcount
« am: September 26, 2017, 15:51:06 »
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"'")
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22988
Re: dcount
« Antwort #1 am: September 26, 2017, 15:53:39 »
Hallo,

weil beim letzten wert der "&"-Operator fehlt....

Offline HDM

  • Newbie
  • Beiträge: 28
Re: dcount
« Antwort #2 am: September 26, 2017, 16:04:26 »
Supi Danke

wenn man den Wald vor......


 

Offline HDM

  • Newbie
  • Beiträge: 28
Re: dcount
« Antwort #3 am: September 27, 2017, 13:14:21 »
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.


 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22988
Re: dcount
« Antwort #4 am: September 27, 2017, 13:43:03 »
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


Offline HDM

  • Newbie
  • Beiträge: 28
Re: dcount
« Antwort #5 am: September 27, 2017, 16:04:23 »
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
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22988
Re: dcount
« Antwort #6 am: September 27, 2017, 16:48:40 »
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.

Offline HDM

  • Newbie
  • Beiträge: 28
Re: dcount
« Antwort #7 am: September 27, 2017, 17:06:31 »
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
 

Offline HDM

  • Newbie
  • Beiträge: 28
Re: dcount
« Antwort #8 am: September 27, 2017, 17:22:35 »
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?
 

Offline HDM

  • Newbie
  • Beiträge: 28
Re: dcount
« Antwort #9 am: September 27, 2017, 17:28:56 »
Habe noch was gefunden, Solln ich die "AND" und "OR" Dcdizuri mit Klammern Gruppieren? Das meint st Du doch mit QR-Bedingungen klemmen oder?
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 727
Re: dcount
« Antwort #10 am: September 27, 2017, 17:52:10 »
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.
Grüße von der (⌒▽⌒)
 

Offline HDM

  • Newbie
  • Beiträge: 28
Re: dcount
« Antwort #11 am: September 27, 2017, 19:11:51 »
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
 

Offline Hondo

  • Administrator
  • Access Guru
  • *****
  • Beiträge: 4640
  • Balu
    • Access Hilfe
Re: dcount
« Antwort #12 am: September 27, 2017, 21:48:53 »
Wie jetzt, Norbert? Echt?
Gut zu wissen. Bin echt nicht mehr so oft im Forum wie früher unterwegs.

Gruß Andreas
 

Offline HDM

  • Newbie
  • Beiträge: 28
Re: dcount
« Antwort #13 am: September 27, 2017, 21:50:57 »
Hatte mich vertan aber auch direkt gelöscht wieso siehst Du das