Avatar billede per2edb Praktikant
23. august 2013 - 20:45 Der er 18 kommentarer og
1 løsning

variabel på en form INDEN Form_Open aktiveres?

Er der nogen steder man kan placere en variabel på en form INDEN Form_Open aktiveres. Her er det forudsat formen IKKE aktiveres på nogen måde - men blot kaldes extern fra.
Avatar billede terry Ekspert
24. august 2013 - 08:50 #1
You can send the openargs parameter to the form containing a value. You can use this value to then decide if the form is to be open or not (cancel = true)
Avatar billede terry Ekspert
28. august 2013 - 20:31 #2
?
Avatar billede per2edb Praktikant
29. august 2013 - 16:11 #3
Hej Terry
Opgaven har ændret sig lidt.

Jeg skal have variablen FirmaId overført fra Access til Excel

I Access har jeg:
Shell "cmd /c  start """" """ & stAppName & """"

Hvordan placeres FirmaId ?
Hvordan får jeg FirmaId ud igen i Excel?
Avatar billede terry Ekspert
29. august 2013 - 19:45 #4
I'm puzzled :-(

Why would you want to put ONE variable into Excel?

It would be quite easy to put the variable into a table and just send that to Excel using DoCmd.TransferSpreadsheet ..
Avatar billede per2edb Praktikant
29. august 2013 - 22:57 #5
Jeg får følgende fejl fra Access:
Regnearkceller kan ikke slettes

strPath = CurrentProject.Path
stAppName = strPath & "\Excel2.xlsm"
Shell "cmd /c  start """" """ & stAppName & """"
DoCmd.TransferSpreadsheet 1, 8, "Firma Forespørgsel", strPath & "\Excel2.xlsm", True, "A2:J190"
Avatar billede terry Ekspert
30. august 2013 - 10:34 #6
you don't need to use shell

sounds like the file is read only.

Try making a new Excel file and don't remove range, just to see what happens
Avatar billede per2edb Praktikant
30. august 2013 - 11:59 #7
Jeg har fundet fejlen.
Jeg har googlet TransferSpreadsheet. Alle har udeladt "Axx:Jxx"
Efter jeg fjernede "A2:J190" virker det !!!

Et problem er tilbage. I Excel2.xlsm oprettes en ny mappe med tablens navn. Jeg skal have de overførte data lagt i Ark1

Hvordan overfører jeg til Excel2.xlsm  ARK1
Avatar billede per2edb Praktikant
30. august 2013 - 14:56 #8
Det er vist et Excel spørgsmål så jeg takker og prøver på Excel forum

Du må gerne svare hvis du ved hvordan man placerer dataene i Ark1

Excel2.xlsm oprettes en ny mappe med tablens navn. Jeg skal have de overførte data til Excel2.xlsm  ARK1
Avatar billede terry Ekspert
30. august 2013 - 15:16 #9
you can prefix the range with the name of the worksheet and an exclamation point; for example, Budget!A1:C7
Avatar billede per2edb Praktikant
30. august 2013 - 15:25 #10
Nej der må ikke stå noget på denne plads "A2:J190"

DoCmd.TransferSpreadsheet 1, 8, "Firma Forespørgsel", strPath & "\Excel2.xlsm", True, "A2:J190"

Løs fra MS:
Range Optional Variant A string expression that's a valid range of cells or the name of a range in the spreadsheet. This argument applies only to importing. Leave this argument blank to import the entire spreadsheet. When you export to a spreadsheet, you must leave this argument blank. If you enter a range, the export will fail.
Avatar billede terry Ekspert
30. august 2013 - 16:38 #11
if you cant use the range in the export then the only alternative I can see is automation.
Avatar billede per2edb Praktikant
30. august 2013 - 17:08 #12
Jeg kan lave dette: "Ark1" men det kræver Ark1 ikke findes forinden og ved næste kald bliver det Ark11 altså et nyt yderligere oprettet sheet. Det skal gå til samme sheet hver gang og opdatere det der evt ligger der i forvejen

DoCmd.TransferSpreadsheet 1, 8, "Firma Forespørgsel", strPath & "\Excel2.xlsm", True, "Ark1"
Avatar billede terry Ekspert
01. september 2013 - 09:27 #13
Heres a simple example of how to automate Excel from Access. Yo will need a reference to Excel.

Function UpdateSheet()
Dim objXL As Excel.Application
Dim objActiveWkb As Excel.Workbook
Dim iCol As Integer, iRow As Integer

    On Error Resume Next
   
    Set objXL = CreateObject("Excel.Application")
    With objXL.Application
       
        'Make Excel visible
        '.Visible = True
       
        'Open the Workbook
        .Workbooks.Open "C:\Test\test.xls"
       
        Set objActiveWkb = .Application.ActiveWorkbook
        iCol = 4
        iRow = 5
       
        objActiveWkb.Worksheets("Sheet1").Cells(iRow, iCol) = "1234"
        objActiveWkb.Save
       
        .Application.Quit
   
    End With
   
    Set objXL = Nothing
    Set objActiveWkb = Nothing
   

End Function
Avatar billede per2edb Praktikant
01. september 2013 - 16:40 #14
Mange tak men fejl her:

Dim objXL As Excel.Application 

Fejludskrift: user defined type not defined
Avatar billede terry Ekspert
01. september 2013 - 17:31 #15
do you have a reference to Excel (tools + references)
Avatar billede per2edb Praktikant
01. september 2013 - 17:53 #16
Nej men nu har jeg hentet:
Microsoft Excel 15.0 object library

Access giver herefter fejlen:

32813
Name conflicts with existing module,project ore object libary
Avatar billede terry Ekspert
01. september 2013 - 18:16 #17
Hard to say what the problem is. I have no problems here.
Sounds like some other reference is conflicting but I cant see what you have.
Avatar billede per2edb Praktikant
01. september 2013 - 18:22 #18
Jeg bruger Access 2013
er Microsoft Excel 15.0 object library
den rigtige eller er der andre?
Avatar billede terry Ekspert
01. september 2013 - 19:37 #19
I would guess that 15 is correct if that's what you find in references.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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