Hallo,
bei der folgenden SQLabfrage habe ich Schwierigkeiten, sie in eine DCount-Abfrage umzuformulieren
SELECT tab_Treatments.Treat_short FROM tab_Treatments WHERE ((Not ((tab_Treatments.Treat_short)='Base' Or (tab_Treatments.Treat_short)='Resc')));
Ergebnis 4 Reihen
NormTreatmentGroups = DCount("Treat_short", "tab_Treatments", "((Not ((Treat_short = 'Base') and (Treat_short ='Resc'))))" )
Ergebnis 7 weil in drei Reihen entweder Base oder Resc steht. Auch das folgende liefert 7, was ich nicht verstehe. Dim NormTreatmentGroups As Integer Dim con As ADODB.Connection Dim cat As ADOX.Catalog Dim rst As ADODB.Recordset Dim str1 As String Dim str2 As String Dim strSQL As String
NormTreatmentGroups = DCount("Treat_short", "tab_Treatments", "((Not ((Treat_short = 'Base') and (Treat_short ='Resc')))) " )
strSQL = "SELECT tab_Treatments.Treat_short FROM tab_Treatments " & _ "Where ((Not ((tab_Treatments.Treat_short)='Base' Or (tab_Treatments.Treat_short)='Resc'))) ; " Debug.Print strSQL Set rst = New ADODB.Recordset Set con = CurrentProject.Connection rst.Open "tab_Treatments", con, adOpenKeyset, adLockOptimistic
NormTreatmentGroups = Val(rst.RecordCount) Debug.Print NormTreatmentGroups
End Sub
Für strSQL ergibt sich : SELECT tab_Treatments.Treat_short FROM tab_Treatments Where ((Not ((tab_Treatments.Treat_short)='Base' Or (tab_Treatments.Treat_short)='Resc'))) ; Das ist doch formal die gleiche SQL-Abrage ganz oben. Ich bin verwundert. Gruß Bernhard
|