Avatar billede orca Nybegynder
09. november 2001 - 22:51 Der er 11 kommentarer og
1 løsning

ADO problem

Hej.  Jeg prøver at oprette nogle nye rows i min database men der opstår fejl. Jeg bruger følgende kode til min connection:

Set Conn = CreateObject(\"ADODB.Connection\")
Conn.ConnectionString = \"Driver={Microsoft Access Driver (*.mdb)};DBQ=Database.mdb\"
Conn.Open

Og denne kode til at lave mit recordset:
Set rs = CreateObject(\"ADODB.RecordSet\")
rs.Open \"SELECT * FROM [tbl_Folders]\", Conn, 1, 3

Når jeg kører mit program melder den om fejl i ovenstående linie:
Run-time error \'3001\':
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

Den vil godt køre en som denne:
Conn.Execute(\"DROP TABLE test\")

Hvad kan være galt?

Mvh Mark
Avatar billede jespernaur Nybegynder
09. november 2001 - 23:13 #1
Prøv at fjerne [] udenom tbl_folders.
Avatar billede orca Nybegynder
09. november 2001 - 23:16 #2
det hjælper heller ikke, har prøvet
Avatar billede jespernaur Nybegynder
09. november 2001 - 23:27 #3
Hvad sker, hvis du fjerner \",1,3\"?
Avatar billede orca Nybegynder
09. november 2001 - 23:40 #4
Så får jeg ikke de rigtige write permissions, og altså kan jeg ikke tilføje mine data til databasen.
Avatar billede jespernaur Nybegynder
09. november 2001 - 23:45 #5
Jatak, men kommer du derved forbi rs.Open og får fejl på en af de senere operationer?
Avatar billede orca Nybegynder
09. november 2001 - 23:48 #6
Desværre heller ikke :(
Avatar billede xelor Nybegynder
10. november 2001 - 09:03 #7
Problemet ligger i den måde du åbner forbindelsen.
Prøv at åbne på denne måde i stedet :
-----------------
Dim conn As Connection
Dim rs As Recordset

Set conn = New Connection
With conn
    .CursorLocation = adUseClient
    .ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database.mdb;Mode=ReadWrite;Persist Security Info=False\"
End With
conn.Open

Set rs = conn.Execute(\"SELECT * FROM [tlb_folders]\")
-------------------
Avatar billede orca Nybegynder
10. november 2001 - 14:07 #8
Her siger den ved linien \"Dim conn As Connection\", \"User-defined type not defined\". Jeg skal vel også lave et CreateObject(\"ADODB.Connection\") ikke?

Mvh Mark
Avatar billede xelor Nybegynder
10. november 2001 - 14:35 #9
Du skal huske at lave en reference til dit ADO object.....
Dette gøres under punktet Project-references....der skal du sætte hak i Microsoft ActiveX Data Objects 2.5 (eller hvad du nu har)

Du behøves IKKE at lave en creatObject, hvis du har sat referencer til ADO....
Avatar billede kedde65 Praktikant
10. november 2001 - 15:02 #10
Du skal aldrig bruge CreateObject da denne metode opretter en form for et variant object, dvs. et Object der er alt for stort i forhold til det det skal bruges til.
Sæt istedet for, som xelor siger, en reference til Microsoft ActiveX Data Object 2.0 eller derover.

Xelor: Du behøver iøvrigt ikke angive Cursor location når vi snakker om en Access DB, den vil altid som standard ligge som AdClient.

Man bør dog kigge på LockType og CursorType, hvis man ønsker at lave mere ved sin database end blot at udtrække simple data.

Kedde
Avatar billede orca Nybegynder
10. november 2001 - 16:10 #11
Tak Xelor, endelig fik jeg det til at køre... Forskellen på ADO i ASP og VB er åbenbart lidt større end jeg regnede med :)
Avatar billede xelor Nybegynder
11. november 2001 - 10:35 #12
> Kedde : OK, takker.....arbejder sjældent med Access-DB\'er........:-))

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
Kurser inden for grundlæggende programmering

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