14. marts 2003 - 11:54Der er
10 kommentarer og 1 løsning
Excel-sheet i form
Hej Eksperter
Jeg har behov for at kunne vise en rapport i en VB form. Jeg har prøvet med en listbox, men mulighederne for formatering er ikke de bedste. Jeg har derfor prøvet at gå ind i komponenter og tilføjet "Microsoft Excel-regneark" og derefter indsat et sheet på min form. Her kan jeg så ikke komme videre. Hvordan kan jeg komme til at redigere i indholdet af sheet'et via VB kode? Eller er der nogen som har en bedre idé til præsentation af rapporter på en form.
Det er muligt, hvis du vil bruge OWC (Office-web-components). Dette betyder dog at både dig og brugere skal have office 2000 eller højere. hvis du er interesseret, kan så sig til.
Hvorfor vil du ikke have en excelfil med? Det er da bare at lægge et tomt Excel-regneark med når du installere - det fylder (næsten) ingenting... Jeg kan ikke se nogle ulemper
Jeg har prøvet at lege med de eksempler, som martin henviste til i et tidligere svar. Jeg kan godt komme til at skrive til min Excel fil (command1_Click) og første gang jeg klikker på command2 vises min fil i OLE1. De efterfølgende gange kommer der en fejlmeddelelse: "Run-time error '336' Component not correctly registered." Jeg ved ikke om det er fordi at linket allerede kører i baggrunden og skal sættes til "nothing" eller hvad der skal til for at det virker hver gang jeg klikker på Command2.
Min kode er her:
Private Sub Command1_Click() Dim ex As Excel.Application Dim work As Excel.Workbook
Set ex = New Excel.Application Set work = ex.Workbooks.Open("c:\temp\test.xls") work.Worksheets("ark1").Range("a1").Value = "hej"
work.Save ex.Workbooks.Close ex.Application.Quit
Set work = Nothing Set ex = Nothing End Sub
Private Sub Command2_Click() OLE1.CreateLink "c:\temp\test.xls", "r1c1:r8c2" End Sub
Private Sub Form_Load() OLE1.OLEDropAllowed = False OLE1.OLETypeAllowed = 0 End Sub
Jeg tror, at jeg selv har løst problemet med en OLE1.close. Jeg fandt ud af at den fejlmeddelelse kom fordi jeg prøvede at åbne test.xls flere gange selv om den var åben i forvejen. Ole1.close lukker linket til filen, så jeg kan komme til at redigere og derefter vise den igen :-)
Private Sub Command2_Click() OLE1.CreateLink "c:\temp\test.xls", "r1c1:r8c2" OLE1.Close End Sub
Jeg vil prøve at arbejde videre med denne løsning, men jeg vil lige holde spørgsmålet åbent lidt endnu for at se om der dukker andre idéer op.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.