13. april 2010 - 08:18Der er
7 kommentarer og 1 løsning
Fejl i makro
Hej
Jeg har nedenstående makro i et regneark. Der kommer en fejlmeddelelse på linjen "Dim rsdata As ADODB.Recordset":
"Compile Error: User-defined type not defined."
Hvad er der galt?
Public Sub HentMenuOpsætning() ' Denne makro henter opsætningen til menuen i filen "xlMenuTable.xls". Derved _ kan opsætningen af menuen opdateres fra centralt hold.
Dim rsdata As ADODB.Recordset Dim szConnect As String Dim szSQL As String Dim objField As ADODB.Field Dim lOffset As Long Dim ReportPath As String
' Hvis der opstår en fejl, kommer der en fejlmeddelelse og makroen afsluttes On Error GoTo errhand ' Hent stien til "xlMenuTable.xls" i nuværende Menutabel. _ Denne sti kan så udskiftes med "Thisworkbook.Path" nedenfor. ReportPath = shMenuTable.Cells.Find(What:="ReportPath").Offset(1).Value ' tilføj en connection string. szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & ReportPath & "\Menuopsætning Salg.xlsx;" & _ "Extended Properties=Excel 8.0;" ' tilføj en SQL sætning. szSQL = "select * from [MenuTable$]" ' tilføj et datasæt (recordset) object og kører SQL forespørgslen. Set rsdata = New ADODB.Recordset rsdata.Open szSQL, szConnect, adOpenForwardOnly, _ adLockReadOnly, adCmdText ' check om datasættet indeholder data. If Not rsdata.EOF Then shMenuTable.Cells.Delete ' tilføj feltnavne til menutabelarket. With shMenuTable.Range("A1") For Each objField In rsdata.Fields .Offset(0, lOffset).Value = objField.Name lOffset = lOffset + 1 Next objField .Resize(1, rsdata.Fields.Count).Font.Bold = True End With ' indsæt datasættet i arket MenuTable. shMenuTable.Range("A2").CopyFromRecordset rsdata Else MsgBox "Menuopsætningen er tom. Kontakt regnskabsafdelingen", vbCritical End If ' Luk datasættet rsdata.Close Set rsdata = Nothing Exit Sub errhand: MsgBox "Menuopsætning blev ikke fundet. Kontakt regnskabsafdelingen.", vbCritical End Sub
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
' Hent stien til "xlMenuTable.xls" i nuværende Menutabel. _ Denne sti kan så udskiftes med "Thisworkbook.Path" nedenfor. ReportPath = shMenuTable.Cells.Find(What:="ReportPath").Offset(1).Value ' tilføj en connection string. szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & ReportPath & "\Menuopsætning Salg.xlsx;" & _ "Extended Properties=Excel 8.0;"
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.