swanwil
Gebruiker
- Lid geworden
- 30 aug 2010
- Berichten
- 165
- Besturingssysteem
- Windows 11
- Office versie
- Office 365 NL
Hallo,
Men heeft voor ons een UDF (user defined feature) gemaakt (genaamd connect)die data ophaalt uit ons CRM systeem en in Excel weergeeft.
Als we dan een artikelnummer in kolom A hebben staan kan in kolom B met die connect functie bijv. de omschijving opgehaald worden uit CRM door te verwijzen naar de juiste tabelnaam en kolomnaam van CRM
In Excel hebben we diverse macro’s die in een persoonlijk bestand staan die op de achtergrond ook geopend wordt als ik in Excel werk. Hierdoor zijn deze macro’s in alle Excel documenten beschikbaar.
Als ik de UDF nu in mijn persoonlijk bestand plaats werkt de functie niet. Deze werkt alleen als de functie rechtstreeks in het bestand geplaatst wordt waarin gewerkt wordt.
Dit betekent dat de UDF in ieder bestand ingekopieerd moet worden om te kunnen gebruiken.
Nu is mijn vraag of het mogelijk is dat de UDF ook vanuit mijn persoonlijk bestand opgeroepen kan worden.
Onderstaand de UDF zonder onze inlog-gegevens;
'excel-sql
Public Function connect(crit As String)
Dim cn As New ADODB.Connection
Dim server As String, database As String, user As String, paswoord As String
server = "XXX"
database = "XXX"
user = "XXX"
paswoord = "XXXX"
On Error GoTo err1
cn.ConnectionString = "Provider=SQLOLEDB; Data Source=" & server & "; Initial Catalog=" & database & "; User ID=" & user & "; Password=" & paswoord & "; Trusted_Connection=no"
If cn.State = 0 Then cn.Open
Dim rec As New ADODB.Recordset
Dim bb As String
rec.Open crit, cn ', adOpenForwardOnly, adLockOptimistic
rec.MoveFirst
bb = rec(0)
rec.Close
cn.Close 'optioneel
connect = bb
Exit Function
Men heeft voor ons een UDF (user defined feature) gemaakt (genaamd connect)die data ophaalt uit ons CRM systeem en in Excel weergeeft.
Als we dan een artikelnummer in kolom A hebben staan kan in kolom B met die connect functie bijv. de omschijving opgehaald worden uit CRM door te verwijzen naar de juiste tabelnaam en kolomnaam van CRM
In Excel hebben we diverse macro’s die in een persoonlijk bestand staan die op de achtergrond ook geopend wordt als ik in Excel werk. Hierdoor zijn deze macro’s in alle Excel documenten beschikbaar.
Als ik de UDF nu in mijn persoonlijk bestand plaats werkt de functie niet. Deze werkt alleen als de functie rechtstreeks in het bestand geplaatst wordt waarin gewerkt wordt.
Dit betekent dat de UDF in ieder bestand ingekopieerd moet worden om te kunnen gebruiken.
Nu is mijn vraag of het mogelijk is dat de UDF ook vanuit mijn persoonlijk bestand opgeroepen kan worden.
Onderstaand de UDF zonder onze inlog-gegevens;
'excel-sql
Public Function connect(crit As String)
Dim cn As New ADODB.Connection
Dim server As String, database As String, user As String, paswoord As String
server = "XXX"
database = "XXX"
user = "XXX"
paswoord = "XXXX"
On Error GoTo err1
cn.ConnectionString = "Provider=SQLOLEDB; Data Source=" & server & "; Initial Catalog=" & database & "; User ID=" & user & "; Password=" & paswoord & "; Trusted_Connection=no"
If cn.State = 0 Then cn.Open
Dim rec As New ADODB.Recordset
Dim bb As String
rec.Open crit, cn ', adOpenForwardOnly, adLockOptimistic
rec.MoveFirst
bb = rec(0)
rec.Close
cn.Close 'optioneel
connect = bb
Exit Function