Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Druk+datagrid
anonim




Typ: Nie zarejestrowany
Druk+datagrid

Cze, czy ktoś może wie jak wydrukowac całą tabelę data grid lub ma jakikolwiek inny pomysł na wydrukowanie zawartosci bazy danych?

03-11-2004 17:56
  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Nie mam pojęcia jak to zrobić w czystym VB, ale..
Wariant 1
Możesz to wyeksportować do Excel'a i wtedy wydrukować...


Option Explicit

Sub SaveAsExcel()
Dim ExcApp As Excel.Application
Dim ExcWbk As Excel.Workbook
Dim ExcWsh As Excel.Worksheet
Dim ExcRng As Excel.Range
Dim i As Long, j As Long

On Error GoTo Err_SaveAsExcel
Set ExcApp = CreateObject("Excel.Application"
Set ExcWbk = ExcApp.Workbooks.Add
Set ExcWsh = ExcWbk.Worksheets(1)


For i = 1 To DataGrid1.Columns.Count
    For j = 1 To DataGrid1.Count
        ExcWsh.Range(Chr(64 + i) & j) = DataGrid1.Cell(j, i)
    Next j
Next i

ExcApp.Visible = True

Exit_SaveAsExcel:
    On Error Resume Next
    Set ExcRng = Nothing
    Set ExcWsh = Nothing
    Set ExcWbk = Nothing
    Set ExcApp = Nothing
    Exit Sub
Err_SaveAsExcel:
    MsgBox Err.Description, vbExclamation, Err.Number
    Resume Exit_SaveAsExcel:
End Sub


Aha...
Nie zapomnić dodać referencji do Excel'a

Wariant 2
Wyeksportuj to do pliku tekstowego porozdzielanego tabulatorami...

Wariant 3
Użyj CristalReports - chyba możliwe jest to także w VB - ale nie jestem pewien.

[Post edytowany dnia 30-11-2004 21:28 przez losmac]


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

30-11-2004 21:25
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Ponieważ nie wiem co tak naprawdę masz na myśli mówiąc
1. wydrukować całą tabelę DataGrid
2.  nie jestem pewna czy chodzi Ci o VB czy VBA
3. nie wiem w jaki sposób masz połączoną DataGrid z tabelą bazy danych

zakładam, że  DataGrid jest połączona z tabelą za pomocą kontrolki ADODC (jeśli za pomoca ADODB.RecordSet na to samo wychodzi) oraz że to VB i to tak najprościej, tylko poglądowo (bez obsługi błędów bo juz późna godzina).

A dlaczego nieMicrosoft Data Report? Jest tu za mało informacji w tym pytaniu...
Private Function PrintFromDataGridAndAdodc()
Dim i As Long
Dim maxNum As Long
Dim strRec As String
Dim numFile
numFile = FreeFile

Open App.Path & "\" & "Karo.txt" For Output As #numFile
With AdodcGRID.Recordset
    maxNum = DataGridADO.Columns.Count - 1

    On Error Resume Next
    .MoveFirst
    Do While Not (.EOF() Or .BOF())
    For i = 0 To maxNum
        '''' Delimiter ustawic trzeba jest na tabulacje
        strRec = strRec & DataGridADO.Columns(i).Value & vbTab
        '''' zamiast DataGridADO.Columns(i).Value & vbTab mozna bezposrednio
        '''' AdodcGRID.Recordset.Fields(i).Value
        '''' i odpowiednio
        '''' maxNum =.Fields.Count - 1

    Next
    strRec = strRec & vbNewLine
    Print #numFile, strRec
    .MoveNext
    strRec = ""
    Loop
End With
Close #numFile
End Function


_____________________________________________
Karolina

01-12-2004 01:46
Pokaż profil karolinavb  Wyślij email do karolinavb   
Wszystkich odpowiedzi: 2 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1