Benaderen SQLite DB vanuit VBA zonder ODBC koppeling

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • timovd
  • Registratie: Maart 2002
  • Laatst online: 06:36

timovd

Voorsprong door techniek

Topicstarter
Voor een add-in (VBA) in MS Excel moet een database benaderd worden. Hiervoor gebruiken we een SQLite DB. Om het installeren gemakkelijker te maken, zou ik deze verbinding graag zonder ODBC koppeling willen maken. Voordeel is natuurlijk ook dat je geen installatierechten nodig hebt op de PC waar je de add-in op wilt gebruiken.
Is dit het mogelijk om vanuit VBA een verbinding te maken met SQ Lite zonder dat er iets geïnstalleerd (OSBC-driver) moet worden?

Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)


Acties:
  • 0 Henk 'm!

  • glmona
  • Registratie: Maart 2005
  • Laatst online: 15-08 06:22
Take your pick:Google: "sqlite vb com wrapper"

Hiervoor dien je dus wel de DLL te installeren op de client, maar geen ODBC

[ Voor 18% gewijzigd door glmona op 14-12-2009 12:38 ]


Acties:
  • 0 Henk 'm!

  • timovd
  • Registratie: Maart 2002
  • Laatst online: 06:36

timovd

Voorsprong door techniek

Topicstarter
Dank. Je moet hier alsnog een dll (sqlite3.dll) voor registreren.
Is het mogelijk (i.v.m. machtigingen) direct vanuit de code naar de SQLite database te verwijzen?

Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)


Acties:
  • 0 Henk 'm!

  • glmona
  • Registratie: Maart 2005
  • Laatst online: 15-08 06:22
Voor zover ik weet is er geen directe mogelijkheid. In elk geval niet voor VBA, wel voor .NET, maar daar heb je weer niets aan..

Iemand anders een idee?

Acties:
  • 0 Henk 'm!

  • timovd
  • Registratie: Maart 2002
  • Laatst online: 06:36

timovd

Voorsprong door techniek

Topicstarter
Hier wat gevonden: http://www.kirupa.com/net/sqllite_vb_pg1.htm
Kunnen we daar wat mee?

Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)


Acties:
  • 0 Henk 'm!

  • bastv
  • Registratie: September 2005
  • Laatst online: 08-09 20:34
ik gebruik deze altijd
http://sqlite.phxsoftware.com/

Acties:
  • 0 Henk 'm!

  • timovd
  • Registratie: Maart 2002
  • Laatst online: 06:36

timovd

Voorsprong door techniek

Topicstarter
Maar werkt dit ook met VBA en hoef je daar ook niets voor te installeren?

Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 10:08
Windows heeft standaard geen ondersteuning voor SQLite. Dus als je sqlite wil gebruiken vanuit VBA zul je altijd iets moeten installeren.

Als je niets kan/mag installeren dan moet je onderzoeken wat op een standaard windows installatie beschikbaar is aan mogelijkheden. Je kan bv een webinterface maken om die sqlite-database heen en dan met WinHTTP via HTTP gaan communiceren.

Omdat je het over Excel hebt zou je ook nog kunnen kijken of Access te gebruiken valt.

Acties:
  • 0 Henk 'm!

  • Refro
  • Registratie: November 2000
  • Laatst online: 12-09 22:28
timovd schreef op woensdag 16 december 2009 @ 11:58:
Dank. Je moet hier alsnog een dll (sqlite3.dll) voor registreren.
Is het mogelijk (i.v.m. machtigingen) direct vanuit de code naar de SQLite database te verwijzen?
Toegang tot de dll zul je zowieso moeten hebben (dat is namelijk de engine). Dus ik vrees dat je niet rechtsreeks er tegenaan kan praten. Wellicht kan je tegen een executable aanpraten maar deze moet ook op het systeem staan. Maar toegang tot de db engine zal je op een of andere manier moeten hebben.

Acties:
  • 0 Henk 'm!

  • glmona
  • Registratie: Maart 2005
  • Laatst online: 15-08 06:22
Beide zijn .NET libraries of wrappers, dit kan je niet in VBA gebruiken aangezien VBA geen .NET is, bij mijn weten..
rutgerw schreef op vrijdag 18 december 2009 @ 12:17:
Windows heeft standaard geen ondersteuning voor SQLite. Dus als je sqlite wil gebruiken vanuit VBA zul je altijd iets moeten installeren.

Als je niets kan/mag installeren dan moet je onderzoeken wat op een standaard windows installatie beschikbaar is aan mogelijkheden. Je kan bv een webinterface maken om die sqlite-database heen en dan met WinHTTP via HTTP gaan communiceren.

Omdat je het over Excel hebt zou je ook nog kunnen kijken of Access te gebruiken valt.
Volgens mij kan het ook niet via Access aangezien die ook VBA gebruikt...

Ik denk dat het zoals rutgerw alleen gaat als je iets installeerd, een dll of een ODBC koppeling met bijbehorende drivers

Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 19-08 14:24

ZaZ

Tweakers abonnee

De dll zou je moeten meeleveren, maar hoeft niet geinstalleerd te worden.
Het probleem is dat sqlite de cdecl calling convention gebruikt en die kan je in VB6 standaard in de gecompilede versie gebruiken en niet in de IDE.
Weet eigenlijk niet of het in VBA uberhaupt mogelijk is om op een normale manier api calls te doen.
Met een COM dll wrapper die het 'moeilijke' voor je doet kan het wel, maar die moet geregistreerd staan op het systeem.

In VB6 kan het wel zonder COM wrapper en met cdecl conventie, maar da's veel werk en ik denk dat het in VBA niet zomaar mogelijk is.

Je kan dus eigenlijk alleen uitwijken naar een COM file erbij maar dan zit je nog met het registreer probleem.
Als je typelibs kunt toevoegen in VBA zou je daar wel omheen kunnen werken door eerst alle benodigde interfaces (IClassFactory enzo) en api calls in een typelib te stoppen en dan vanuit je VBA code @runtime je object instantieren.

Lekker op de bank


Acties:
  • 0 Henk 'm!

  • timovd
  • Registratie: Maart 2002
  • Laatst online: 06:36

timovd

Voorsprong door techniek

Topicstarter
In VB heb ik nu onder Tools\References het DLL LITEXLib toegevoegd.
Hoe kan ik vervolgens verwijzen naar het DLL zodat er geen ODBC-koppeling gemaakt moet worden?

Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)

Pagina: 1