Hent Menu opsætning
Jeg har et Excel-AddInn, som skal hente en menu-opsætning i et regneark og oprette en menu i Excel når programmet åbnes. Makroen HentMenuOpsætning virker desværre ikke. Jeg får den fejlmeddelelse, som er angivet nederst i koden.Det er et kursus-eksempel til Excel 2003 jeg har fundet frem, så jeg tænker at der måske er noget med "provider" eller "extended properties" der skal ændres i koden. Det har jeg ikke en pind forstand på...
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 & "\xlMenuTable.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 "Menu Opsætningen er tom, kontakt de rapporteringsansvarlige", vbCritical
End If
' Luk datasættet
rsdata.Close
Set rsdata = Nothing
Exit Sub
errhand:
MsgBox "Seneste Menu Opsætning blev ikke fundet, kontakt de rapporteringsansvarlige", vbCritical
End Sub
