Jag har gjort en databas som jag ska kunna skriva ut men vet inte hur jag ska göra. Det är 11st saker som ska skrivas ut på något snyggt sätt. Vet inte hur man lägger upp det så att man får det att se ut som man vill. Jag skriver ut mina databaser genom ett Excel-objekt och kan då bestämma precis hur jag vill ha min layout. Jag är ganska ny med programering så jag undrar lite. För att överföra databasposterna, ska du lopa igenom recordesetet. Jag använder den här koden:Skriv ut databas
/SimonSv: Skriv ut databas
____________________________________________________
1. I en modul
Global ExcelApp As Object
2. Kod för utskrift
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Caption = "Titel på arbetsboken"
Set ExcelSheet = Nothing
Xls_ver = Val(ExcelApp.Application.Version) 'Kollar versionen på Excel
If Xls_ver >= "8" Then 'Om TRUE så används Excel97
Set ExcelSheet = GetObject(Xls_Path + "noac.xls").ActiveSheet
Else ' Excel 95 eller lägre används
Set ExcelSheet = GetObject(Xls_Path + "noac.xls")
End If
' kod för att fylla på dokumentet med databasposter
ExcelSheet.PrintOut
____________________________
Detta kanske kan vara något?
/SamirSv: Skriv ut databas
1
Exeldocumentet noac.xls, var ligger det någonstans.
2
Det står att jag ska lägga till kod för att fylla på dokumentet med databasposter, hur gör jag det?
/SimonSv: Skriv ut databas
Exempel:
x=1
With RS
.Movefirst
Do While not .EOF
ExcelSheet.Cells(x,1).Value=!Fält1
ExcelSheet.Cells(x,2).Value=!Fält2
o.s.v
x=x+1
Loop
End With
Ett tips. Jag brukar spela in makro i Excel och studerar sedan koden som skapades. Utifrån detta kan man sen göra sina egna anpassningar.
Ska man göra snygga utskrifter i Excel från VB, kan man första starta makroinspelaren i Excel, göra sina formateringar som man vill ha det och sen studera resultatet i VBA-fönstret. Sen är det lätt att överföra koden till VB.
MVH
KjellSv: Skriv ut databas
Private Sub CmdExport_Click()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
rs.Open "select * From tblpersoner Order by fieldFörnamn ASC", cn, adOpenDynamic
x = 1
With rs
.MoveFirst
Do While Not .EOF
ExcelSheet.Cells(x, 1).Value = Data1.Recordset.Fields("RegFörnamn")
ExcelSheet.Cells(x, 2).Value = Data1.Recordset.Fields("RegEfternamn")
x = x + 1
Loop
End With
End Sub
men den hakar sig på
rs.Open "select * From tblpersoner Order by fieldFörnamn ASC", cn, adOpenDynamic
och det står "The application requsted an operation on an object with reference to a closed or invalid Connection object".
vet inte vad det betyder nån som vet?
/simon