Having Count Distinct problem
08.01.2008. u 14:29 · pre 228 meseci
#1
Imam tekst fajl unutar kojeg bi trebao da izvrsim prebrojavanje faktura, gdje faktura sadrzi proizvode koje izabere korisnik.
Dakle korisnik unese npr. proizvod br. 1, proizvod br. 2 i proizvod br 3. Program treba da pokaze one fakture koje na sebi imaju i proizvod 1 i proizvod 2 i proizvod 3.
Podaci mi se nalaze u tekst fajl-u, te sam stoga napravio sljedeci kod:
kada pokrenem izvrsavanje dobijem poruku koja se nalazi u prilogu. ODBC Text Driver nedefinirana funkcija 'DISTINCT'. Upit mora sadrzavati DISTINCT, jer jedino tako dobivam ispravne podatke.
Na koji nacin se moze srediti problem?
Dakle korisnik unese npr. proizvod br. 1, proizvod br. 2 i proizvod br 3. Program treba da pokaze one fakture koje na sebi imaju i proizvod 1 i proizvod 2 i proizvod 3.
Podaci mi se nalaze u tekst fajl-u, te sam stoga napravio sljedeci kod:
Code:
Private Sub cmdIzvrsiUpit_Click()
Link01 = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="
Link02 = Chr(34)
Link3 = "DBQ=" & App.Path & ";DefaultDir=" & App.Path & ";Driver={Microsoft Text Driver (*.txt; *.csv)};DriverId=27;FIL=text;FILEDSN=" & App.Path & "\TXTODBC.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"
TXTLink = Link1 & Link2 & Link3 & Link2
Dim TxtAdoConn As ADODB.Connection
Dim TxtAdoRS As ADODB.Recordset
Dim TxtAdoFld As ADODB.Field
Dim Server, SQLUpitiServeri As String
Set TxtAdoConn = New ADODB.Connection
TxtAdoConn.Open TXTLink
Dim Proizvodi
Dim Duzina As Integer
Duzina = Len(txtLista.Text)
Duzina = Duzina - 2
Proizvodi = Left(txtLista.Text, Duzina)
Dim CounUvjet As Integer
CounUvjet = Val(txtBrojProizvoda.Text)
SQLUpitServeri = "Select FAKTURA From TxtBaza.txt where ARTIKL in (" & Proizvodi & ") group by FAKTURA having count(DISTINCT(ARTIKL)) = " & CounUvjet
Poruka = MsgBox(SQLUpitServeri, vbOKOnly, "")
'Kreiraj i otvori recordset
Set TxtAdoRS = New ADODB.Recordset
TxtAdoRS.Open SQLUpitServeri, TxtAdoConn
With TxtAdoRS
.MoveFirst
Do While Not .EOF
.MoveNext
Loop
End With
Exit Sub
End Sub
Private Sub cmdIzvrsiUpit_Click()
Link01 = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="
Link02 = Chr(34)
Link3 = "DBQ=" & App.Path & ";DefaultDir=" & App.Path & ";Driver={Microsoft Text Driver (*.txt; *.csv)};DriverId=27;FIL=text;FILEDSN=" & App.Path & "\TXTODBC.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"
TXTLink = Link1 & Link2 & Link3 & Link2
Dim TxtAdoConn As ADODB.Connection
Dim TxtAdoRS As ADODB.Recordset
Dim TxtAdoFld As ADODB.Field
Dim Server, SQLUpitiServeri As String
Set TxtAdoConn = New ADODB.Connection
TxtAdoConn.Open TXTLink
Dim Proizvodi
Dim Duzina As Integer
Duzina = Len(txtLista.Text)
Duzina = Duzina - 2
Proizvodi = Left(txtLista.Text, Duzina)
Dim CounUvjet As Integer
CounUvjet = Val(txtBrojProizvoda.Text)
SQLUpitServeri = "Select FAKTURA From TxtBaza.txt where ARTIKL in (" & Proizvodi & ") group by FAKTURA having count(DISTINCT(ARTIKL)) = " & CounUvjet
Poruka = MsgBox(SQLUpitServeri, vbOKOnly, "")
'Kreiraj i otvori recordset
Set TxtAdoRS = New ADODB.Recordset
TxtAdoRS.Open SQLUpitServeri, TxtAdoConn
With TxtAdoRS
.MoveFirst
Do While Not .EOF
.MoveNext
Loop
End With
Exit Sub
End Sub
kada pokrenem izvrsavanje dobijem poruku koja se nalazi u prilogu. ODBC Text Driver nedefinirana funkcija 'DISTINCT'. Upit mora sadrzavati DISTINCT, jer jedino tako dobivam ispravne podatke.
Na koji nacin se moze srediti problem?
Potpis
steve585