09. august 2006 - 14:08Der er
11 kommentarer og 1 løsning
Import af tekstboks fra Excel til Access
Hej. Jeg roder lidt med en database, hvor jeg skal hente nogle data fra nogle Excel-regneark.
Jeg har ingen problemer med at importere data fra de forskellige celler med TransferSpreadsheet, men jeg har også behov for at hente noget tekst som står i nogle tekstbokse i regnearkene.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Tekstbokse i regnearket - er det i en formular / kontrolelement / formularfelt eller.. og hvor skal teksten hen?
Er det en automatisk løsning med VBA du søger - eller ren manuel?
Synes godt om
Slettet bruger
09. august 2006 - 14:31#2
Jeg har desværre lynende travlt, så jeg har bare pastet noget kode, som jeg har brugt til noget import af excel og der er noget med specifikke celler. Så held og lykke og håber du kan bruge noget af det!~)
Private Sub Hentfiler_Click() Dim sql As String Dim strSQL As String Dim db As DAO.Database Dim aar As String
Hvordan ser din kode ud p.t. - dette nfor at få en opfattelse af "kontexten" - idet jeg går ud fra, at koden ligger i Access og du på en eller anden måde udvælger regnearksfilen. Er det det samme regneark hver gang?
Hvis det er lettere kan du evt. sende såvel database som excel-fil til: pb@supertekst-it.dk
Jeg kan ikke sende regneark og access-fil, da det er fortroligt. Men koden er følgende (jeg er ikke prof-programmør, så det er tilladt at grine ;o) :
Private Sub hentdata_Click()
'Regnearksfanerne er navngivet med ugedagene ugeDagNr = Weekday(Forms!f_basis_menu!driftsdoegn, vbMonday) Select Case ugeDagNr Case 1 ugeDag = "Mandag" Case 2 ugeDag = "Tirsdag" Case 3 ugeDag = "Onsdag" Case 4 ugeDag = "Torsdag" Case 5 ugeDag = "Fredag" Case 7 ugeDag = "Lørdag-søndag" End Select
'Hent oplysninger fra hovedmenuen om den aktuelle driftsenhed center = Forms!f_basis_menu!enhed ddoegn = Forms!f_basis_menu!driftsdoegn ugeNr = DLookup("uge_nr", "t_basis", "driftsdoegn=#" & Year(ddoegn) & "/" & Month(ddoegn) & "/" & Day(ddoegn) & "#") 'Hent data fra regneark sti = "X:\data\End-to-End-Processer\Kvalitet og Transport\Rapportering\datakilder\khc\import\uge " & ugeNr & ".xls" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "t_temp", sti, no, ugeDag & "!I25:I25" 'Gem i databasen og slet den midlertidige tabel DoCmd.SetWarnings False DoCmd.RunSQL ("UPDATE t_rap_ank_center SET std_mask_a=" & DLookup("F1", "t_temp") & " WHERE center='" & center & "' AND driftsdoegn=#" & Year(ddoegn) & "/" & Month(ddoegn) & "/" & Day(ddoegn) & "#;") DoCmd.RunSQL ("DROP TABLE t_temp") DoCmd.SetWarnings True
Her er en kode, der vil kunne identificere tekstbokse og udtrække indholdet - du må selve placere koden korrekt - giv blot signal, hvis behov for mere info.:
Rem Sæt referencen: Microsoft Excel 9.0 Object Library (Tools / References i VBA)
Dim xls As Object, antal, s, stext As String
Set xls = CreateObject("Excel.application") With xls .Workbooks.Open (sti)
Rem Antallet af tekstbokse antal = .ActiveSheet.Shapes.Count
Rem gennemløb alle tekstbokse og hent teksten herfra For s = 1 To antal .ActiveSheet.Shapes(s).Select stext = Selection.Characters.Text
Rem Overfør til tabel-felt Next s
Rem Luk objectets applikation & nedlæg objectet .Application.Quit Set xls = Nothing End With Rem ==================================================
Rem Sæt referencen: Microsoft Excel 9.0 Object Library (Tools / References i VBA)
Dim xls As Object, antal, s, stext As String On Error Resume Next Set xls = CreateObject("Excel.application") With xls .Workbooks.Open (sti) .Sheets("Briefing").select
Rem Antallet af tekstbokse antal = .ActiveSheet.Shapes.Count
Rem gennemløb alle tekstbokse og hent teksten herfra For s = 1 To antal stext = .ActiveSheet.Shapes(s).textframe.characters.Text DoCmd.RunSQL ("INSERT INTO t_test (tekst) VALUES('test: " & stext & "')") Rem Overfør til tabel-felt Next s
Rem Luk objectets applikation & nedlæg objectet .Application.Quit Set xls = Nothing End With
Selv tak... "og så er der ikke noget at grine af" :-)
Synes godt om
Ny brugerNybegynder
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.