Predmet:Re: Izveštaj na osnovu crosstab upita sa parametrima!
Napravi praznu formu.
U recordsource stavi tvoj crostab query.
Na on load stavi ovaj kod.
Ja sam stavio da se izvjestaj zove report1.
Ako nije ispravi u kodu
PreuzmiIzvorni kôd (Visual Basic):Private Sub Form_Load()
DoCmd.OpenReport "Report1", acViewPreview
End Sub
Napravi prazan izvjestaj.
Na on page izvjestaja stavi ovaj kod.
Na kraju procedure imas red koda koji zatvara formu kojoj sam ja dao ime form1.
Ako das neko drugo ime ispravi.
PreuzmiIzvorni kôd (Visual Basic):Private Sub Report_Page()
Dim Rs As Recordset
Dim DuzinaPapira As Integer
Dim Sredina As Integer
Dim DuzTeksta As Integer
Dim StartY As Integer
Dim X As Integer
Dim Y As Integer
Dim PozX() As Integer
Dim Tekst As String * 10
Dim Tekst1 As String * 20
Dim BrojKolona As Integer
Dim I As Integer
DuzinaPapira = Me.Width
Me.ForeColor = 255
Me.FontSize = 18
Me.FontBold = True
DuzTeksta = Me.TextWidth("NEKI NASLOV")
Sredina = (DuzinaPapira - DuzTeksta) / 2
Me.CurrentX = Sredina
Print "NEKI NASLOV"
X = 500
Me.ForeColor = 0
Me.FontSize = 10
Me.CurrentX = X
Y = Me.CurrentY
Set Rs = Forms![Form1].RecordsetClone
BrojKolona = Rs.Fields.Count - 1
ReDim PozX(BrojKolona)
For I = 0 To BrojKolona
Me.CurrentY = Y
PozX(I) = Me.CurrentX
If Tekst = "Ime" Or Tekst = "Prezime" Then
Tekst1 = Rs.Fields(I).Name
Print Tekst1 & " "
Else
Tekst = Rs.Fields(I).Name
Print Tekst & " "
End If
Next I
Me.FontBold = False
Me.CurrentX = X
Y = Me.CurrentY
Do While Not Rs.EOF
For I = 0 To BrojKolona
Me.CurrentX = PozX(I)
Me.CurrentY = Y
If Rs.Fields(I).Name = "Ime" Or Rs.Fields(I).Name = "Prezime" Then
Tekst1 = LTrim(Format$(Rs.Fields(I)))
Print Tekst1
Else
Tekst = Format$(Rs.Fields(I))
Print Tekst
End If
Next I
Me.CurrentX = X
Y = Me.CurrentY + 5
Rs.MoveNext
Loop
DoCmd.Close acForm, "Form1"
End Sub
Struktura baze je nikakva pa bi najbolje bilo napraviti sve kodom jer ovaj tvoj uslov i crostab je megalomansko rjesenje.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.