|
|
Postada em 25/08/2004 14:54 hs
Alguem sabe como crio atraves do vb um relatório no excel?
|
|
|
|
|
|
|
|
Postada em 25/08/2004 15:01 hs
Faça assim: Utiliza o metodo creatobjeto para lançar dados das tabelas do Acess atraves do vb para ogeral relatorios no excel: Set BancoDeDados = OpenDatabase(App.Path & "Tiroalvo.MDB", False) Set TBSúmula = BancoDeDados.OpenRecordset("Súmula", dbOpenSnapshot) Set TBSúmula = BancoDeDados.OpenRecordset("Select * from súmula Where [Local Competição] = '" & DBCLocal & "'and Categoria = '" & DBCCategoria & "' and [Data Competição] = #" & Format(DBCData, "mm/dd/yy") & "# order by [Total Pontos] Desc,sociedade desc,[1tiro]desc,[2tiro]desc,[3tiro]desc,[4tiro]desc,[5tiro]desc,[6tiro]desc,[nome]desc")
If TBSúmula.EOF Then 'Não retornou nenhum registro MsgBox "Não há Dados para Visualizar Nesta:" & Chr(13) & "Categoria, Data e Local de Competição", 48, "Tiro Alvo Seta" Else X = 2 ‘ determina a linha e coluna aonde serão começa a ser lançados os dados Screen.MousePointer = 11 Set oleexcel = CreateObject("excel.application") Set oleworkbook = oleexcel.Workbooks.Open(App.Path & "súmula.xls") ‘ o nome e caminho da sua planilha Set oleworksheet = oleexcel.Worksheets("Dados") ‘ determinha que plan sera lançados os dados
DoEvents oleworksheet.Range("a2:p1000").ClearContents ‘ limpa as colunas apartir da A2 ate P1000
‘ começa a baixar os dados da tabela Do While Not TBSúmula.EOF For Y = 1 To TBSúmula.Fields.Count oleworksheet.Cells(X, Y) = TBSúmula.Fields(Y - 1) Next Y ‘ira deixar a primeira coluna em negrito With oleworksheet.Range("A" & X) .Value = TBSúmula.Fields(0) .Font.Bold = True End With
X = X + 1
TBSúmula.MoveNext Loop
DoEvents
TBSúmula.Close Screen.MousePointer = 0 oleexcel.Visible = True Set TBSúmula = Nothing Set oleexcel = Nothing Set oleworkbook = Nothing Set oleworksheet = Nothing
End If Agora se você quiser deixar o seu excel sem as barras de menus tera que trabalhar com vba dentro do excel para quando ele abrir fique somente um visualizador com os dados do seu relatorio...
|
|
|
|
|
|
Postada em 25/08/2004 15:03 hs
Digite este código no evento Form_Load no VB:
Private Sub Form_Load() Dim intDays As Integer intDays = InputBox(“Informe o número de dias:”) ‘Informação do usuário
‘Inicia Excel Set xlApp = CreateObject(“Excel.Application”) Set xlBook = xlApp.Workbooks.Open(“C:Teste.xls”) ‘Mude o diretório se for necessário Set xlsheet = xlBook.Worksheets(“Sheet1”) xlsheet.Visible = False ‘Mude para True se você quiser
‘Insere o valor informado na célula A1 xlsheet.Range(“A1”).Value = intDays
xlApp.Run macro:=”’Module1’!Time” Set xlApp = Nothing Unload Form1 End Sub
Antes de executar o código VB, você deve criar um workbook chamado “Teste.xls” no Excel 95 contendo ‘Sheet1’ e ‘Module1’. O módulo deve conter a seguinte macro:
Sub Time() Dim intDays As Integer intDays = Sheets(“Sheet1”).Range(“A1”).Value MsgBox prompt:=”Em “ & intDays & “ dias, a data será “ & intDays + Date End Sub
Saia do Excel e execute o programa VB. O Excel não estará visível neste exemplo. Se você quizer torná-lo visível, mude a linha:
xlsheet.Visible = False para: xlsheet.Visible = True
"O pior inimigo que você poderá encontrar será sempre você mesmo."
|
|
|
|
|