Avatar billede ulrina Nybegynder
25. september 2003 - 08:16 Der er 12 kommentarer og
1 løsning

Excel vs Access

Er det mulig at hente og sende data til et excel ark som det er med en access database?? i så fald hvordan gør man??
Avatar billede neander Nybegynder
25. september 2003 - 08:23 #1
Spurgte om det samme for nogle uger siden: http://www.eksperten.dk/spm/400175

Jeg følger lige med her også :)
Avatar billede ulrina Nybegynder
25. september 2003 - 08:28 #2
Skal måske lige nævne at der her er tale om VB ikke VBA :)
Avatar billede martin_moth Mester
25. september 2003 - 09:51 #3
Hmm - vi snakker VB6.

Du kan åbne *.mdb-filen og indlæse alle de data du vil i et recordsæt (fx. via et passende SQL-udtryk). Der er vel 100 spørgsmål om det på eksperten ;o)

Herefter kan du fra VB6 hooke op til Excel - det har der også været et spørgsmål om for et par dage siden.

Summa sumarum: JA, det kan du. Indlæs data fra din *.mdb i en recordsæt, hook op til Excel, og sæt dit recordsæt ind i de celler du ønsker :o)
Avatar billede ulrina Nybegynder
25. september 2003 - 12:34 #4
Jeg vil gerne have et eksempel på hvordan jeg indsætter data i et excel dokument... ikke noget med access... kun hvordan jeg gør for at sætte nogle data ind i et excel dokument og henter dem igen... det skal laver sådan fordi at jeg skal kunne åbne dokumentet i excel for at se dataene, som mit program arbejder med... håber I forstår ellers skriv :)
Avatar billede martin_moth Mester
25. september 2003 - 16:43 #5
Du kan da kikke lidt på dette til at starte med http://www.eksperten.dk/spm/404248
Avatar billede mikker Nybegynder
25. september 2003 - 18:05 #6
Indsæt værdien 100 i celle A1 :

Dim oExcelApp As Object
      Dim NyTekst As String
      Set oExcelApp = CreateObject("excel.Application")
      oExcelApp.Workbooks.Open ("F:\1.xls")
      NyTekst = "Ib Petersen"
      oExcelApp.Visible = True
      oExcelApp.range("A1").Value = 100

- Mikker
Avatar billede ulrina Nybegynder
26. september 2003 - 08:45 #7
Hmmm mikker >> den åbner jo dokumentet i Excel.. det må den ikke.. jeg skal manuelt åbne for at se dataene :) er det mulig ??
Avatar billede martin_moth Mester
26. september 2003 - 09:29 #8
Hmm - er problemet at du ikke vil have at Excel starter?

Så brug følgende metode:

Du skal bruge en OLE-komponent på din form sammen med metoden CreateLink. Metoden CreateLink anvendes til at skabe et link til objektet. Syntaksen er således:

  Object.CreateLink sourcedoc [, sourceitem]

Hvor
  ·  sourcedoc er navnet på den fil der ønskes skabt et link til
  ·  sourceitem er et element i sourcedoc

F.eks. kan der skabes et link til celleområdet R1C1:R8C2 (række 1-8, kolonne 1-2) i Excel-regnearket Budget.xls i samme bibliotek som VB-projektet, således:

  OLE1.CreateLink App.Path & "\Budget.xls", "R1C1:R8C2"

For at metoden CreateLink kan anvendes, skal OLE-kontrollens egenskab OLETy-peAllowed forinden sættes til Linked eller both. Anvend f.eks. systemkonstanten vbOLELinked.

At der er skabt et link til Excel-regnearket Budget.xls betyder, at hvis der dobbelt-klikkes på det i OLE-kontrollen, vil Excel starte op, og der kan arbejdes med regne-arket - i VB6, forstås.

Voilà!
Avatar billede bak Forsker
26. september 2003 - 13:34 #9
Smart Martin. :-)
Man kan også bruge lidt sql til at indsætte i et lukket regneark.
Husk at sætte reference til microsoft activeX data object

Public Sub WorksheetInsert()

    Dim objConn As ADODB.Connection
    Dim szConnect As String
    Dim szSQL As String
   
    ' Opret connection string.
    szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=C:\Sales.xls;" & _
                "Extended Properties=Excel 8.0;"
   
    ' Opret SQL statement, hvor [sales$] er arknavnet efterfulgt af en $.
    szSQL = "INSERT INTO [Sales$] " & _
            "VALUES('Vx', 'On-Line', 'Computers', 'Mid', 30)"

    ' Create and open the Connection object.
    Set objConn = New ADODB.Connection
    objConn.Open szConnect
   
    ' Execute the insert statement.
    objConn.Execute szSQL, , adCmdText Or adExecuteNoRecords
   
    ' Close and destroy the Connection object.
    objConn.Close
    Set objConn = Nothing

End Sub
Avatar billede martin_moth Mester
26. september 2003 - 13:42 #10
Endnu mere smart, bak :o)
Avatar billede ulrina Nybegynder
26. september 2003 - 20:37 #11
Takker mange gange :) jeg ville gerne have delt points mellem bak og martin men eftersom det kun er martin som har svaret falder de til ham :)
Avatar billede martin_moth Mester
27. september 2003 - 11:55 #12
Ellers bed bak om at smide et svar - vil du have halvdelen, bak?
Avatar billede bak Forsker
28. september 2003 - 23:10 #13
nej, nej Martin, det var kun ment som et supplement :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester