Avatar billede madiedk Nybegynder
07. januar 2008 - 16:21 Der er 10 kommentarer og
1 løsning

VBA, ADO, database

Hej

jeg har en oracledatabase som jeg vil trække noget data ud fra. der er brugernavn og kodeord på basen. hvordan sætter jeg det op så det virker.
jeg skal trække nogle tal ud fra en tabel der hedder "bil" og de tal skal stå i kolonne a i excel
Avatar billede arne_v Ekspert
07. januar 2008 - 16:27 #1
Skal det absolut kodes i VBA ?

Det nemmeste vil vaere i Excel at importere data direkte fra Oracle via ODBC.

Men ellers er con ADO connection string til Oracle f.eks.:

Set con = Server.CreateObject("ADODB.Connection")
con.Open "Driver={Microsoft ODBC for Oracle};Server=ARNEPC3;Uid=xxxx;Pwd=xxxx;"
Avatar billede madiedk Nybegynder
07. januar 2008 - 17:27 #2
problemet er at jeg har været på nettet og finde en masse kode og prøve, men kan ikke få det til at virke. så hvis du vil være venlig at skrive hele koden så kan jeg prøve den og eventuelt skrive hvilke fejl den kommer med.
databasen hedder køretøjer og tabeller hedder bil. kodeord og brugernavn er begge "test"
Avatar billede madiedk Nybegynder
07. januar 2008 - 20:12 #3
er lige blevet lidt forvirret. hvordan hænger odbc, ado og oledb sammen? kan jeg hente data fra en database med en af de 3 eller er det 3 forskellige ting
Avatar billede arne_v Ekspert
07. januar 2008 - 20:42 #4
ODBC er en gammel maade at tilgaa databaser paa.

OLE DB er en nyere maade at tilgaa databaser paa.

ADO er OLE DB men pakket saa det er nemt at bruge i script sprog som f.eks. VBA.

Det er muligt at bruge ODBC via ADO - hvis der angives en DRIVER er det ODBC, men
hvis der angives en PROVIDER er det aegte OLE DB.
Avatar billede arne_v Ekspert
07. januar 2008 - 20:49 #5
Med hensyn til kode - hvad har du ?
Avatar billede madiedk Nybegynder
07. januar 2008 - 22:05 #6
koder ligger på mit arbjede, så den har jeg i morgen.

1. når det nu er en oracle database jeg skal connecte hvorfor er det så en driver du har skrevet i din kode og ikke en provider?

2. skal det stå "Microsoft ODBC for Oracle" eller skal der sættes en sti ind der?
Avatar billede arne_v Ekspert
07. januar 2008 - 22:26 #7
re 1)

Det blev ODBC fordi jeg havde en kode snippet med det liggende !

re 2)

Det skal staa saadan.
Avatar billede arne_v Ekspert
07. januar 2008 - 22:27 #8
Ifoelge http://www.connectionstrings.com/?carrier=oracle vil OLE DB connection string
se ud som:

"Provider=msdaora;Data Source=ARNEPC3;User Id=xxxx;Password=xxxx;
Avatar billede madiedk Nybegynder
08. januar 2008 - 12:11 #9
hvis jeg tilgår databasen med ms query så virker det fint og makroen ser sådan ud:

With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DSN=INV;UID=test;PWD=test;SERVER=invnpa;", Destination:=Range("F1"))
        .CommandText = Array( _

så her er der både skrevet en server og database navn, mangler der så ikke noget i den kode du har skrevet arne v? eller er det mig der ikke forstår det endnu:-)
Avatar billede madiedk Nybegynder
16. januar 2008 - 23:52 #10
fik det til at virke, tak for tiden og infoen om ado,oledb osv. smid et svar
Avatar billede arne_v Ekspert
17. januar 2008 - 01:28 #11
ok
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
Computerworld tilbyder specialiserede kurser i database-management

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