Module ModExcel
Private MSExcel As Excel.Application
Private ws As Excel.Worksheet
Private oRng As Excel.Range
Public Sub 기록Print()
Dim Label1, Label2 As String
Label1 = My.Forms.frm메인.Label1.Text.ToString
Label2 = My.Forms.frm메인.Label2.Text.ToString
Dim iRow, iCol As Integer
Dim data(,) As String
sql = "select count(*) from 임시 where 이름 = '" & label1.Trim & "'"
Dim cmd As New OleDbCommand(sql, adoCon)
Dim o As String = cmd.ExecuteScalar
If o Is Nothing Then
MessageBox.Show("없음")
Exit Sub
Else
ReDim Preserve data(o, 16)
End If
sql = "select * from 임시 where 이름 = '" & label1.Trim & "'"
cmd = New OleDbCommand(sql, adoCon)
cmd.CommandType = CommandType.Text
Dim rs As OleDbDataReader = cmd.ExecuteReader
Try
MSExcel = GetObject("excel.application")
Catch ex As Exception
End Try
If MSExcel Is Nothing Then
MSExcel = CreateObject("excel.application")
End If
If (MSExcel Is Nothing) Then
MessageBox.Show("엑셀을 실행할 수 없습니다.")
Exit Sub
End If
ws = MSExcel.Workbooks.Open(Application.StartupPath & "\선수기록.xls").ActiveSheet
iRow = 0 : iCol = 0
While (rs.Read())
For iCol = 0 To 16
data(iRow, iCol) = IIf(IsDBNull(rs(iCol)), "", rs(iCol))
Next
iRow += 1
End While
ws.Range(ws.Cells(6, 1), ws.Cells(6, 16)).Copy()
ws.Range("a7", "p" & (7 + iRow)).Insert()
ws.Range("a6", "p" & (7 + iRow)).Value = data
ws.Cells.EntireColumn.AutoFit()
ws.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape
MSExcel.Visible = True
ws.PrintPreview()
MSExcel.Visible = False
MSExcel.ActiveWindow.Close(False)
rs.Read()
End Sub
이게 엑셀 형식틀에 놓고 인쇄미리보기 한 다음에 프린트 하는건데..
db에 있는 데이터가 오질 않네요..
뭐가 잘못된지 몰라서 이렇게 올립니다..좀 도와주세요..^^
추가로..엑셀파일로 저장하는 소스도 아시면 좀 가르쳐 주세요..엑셀파일로 해서 관리하려고 하는데..
역시 저장하는 법을 몰라서..
첫댓글 네