Solved

AN ADO ERROR IN VISUALBASIC

Posted on 2002-04-19
18
270 Views
Last Modified: 2013-11-25
I got a connection string with ADO. It works fine on my
machin and when i made an executable of my programme and
run the executable on other machine it gives me typemismatch error. I put messaboxes everwhere in my
connection and found it is doing at an initialization of
recordset. Below is the code i m using to connect.
---->

Dim Conn As ADODB.Connection
Dim RS As ADOR.Recordset
Dim AdoCmd As ADODB.Command
Dim ConnString As String
Dim ORCLServerConnect As String

Set Conn = CreateObject("ADODB.Connection")
Set RS = CreateObject("ADOR.Recordset")
ORCLServerConnect = "driver={Microsoft ODBC for Oracle};" & _
                                 "server=" & Me.ServerName & ";" & _
                                 "PWD=" & g_sPassword & ";" & _
                                 "UID=" & g_sUserName & ";"

RS.ActiveConnection = ORCLServerConnect

'----->

It gives me error at:
Set RS = CreateObject("ADOR.Recordset")

It works fine on my machine, even the executable runs fine on my machine. It gives typemismacth on a different machine.

I checked the dll's, registration everything is same and perfect.

VM
0
Comment
Question by:vmandem
  • 8
  • 4
  • 3
  • +3
18 Comments
 
LVL 5

Expert Comment

by:rkot2000
ID: 6954880
you may have a differn ado.
try to run mdac_ setup an clients pc.
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 6954973
I am with rkot.
Besides, try to change:
Set RS = CreateObject("ADOR.Recordset")
to
Set RS = new ADOR.Recordset
(same to others CreateObject)
since CreateObject is used if you don't use strong typed variables (dim RS As Object).
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 6954981
You can pass the ActiveConnection property when you open RS
RS.open "sqlstatement",conn
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 6954995
something like:

Private Sub Form_Load()
Dim Conn As ADODB.Connection
Dim RS As ADOR.Recordset
Dim AdoCmd As ADODB.Command
Dim ConnString As String

ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\FMC\Register\centros.mdb;Persist Security Info=False;Jet OLEDB:Database Password=xxxx"
Set Conn = New ADODB.Connection
Set RS = New ADOR.Recordset
With Conn
    .ConnectionString = ConnString
    .Open
    If .State = adStateOpen Then
        RS.Open "select * from centros order by cod_centro", Conn, adOpenDynamic, adLockOptimistic
    End If
End With
Do While Not RS.EOF
    Debug.Print RS.Fields(0)
    RS.MoveNext
Loop
End Sub
0
 
LVL 75

Accepted Solution

by:
Anthony Perkins earned 20 total points
ID: 6956316
Don't use ADOR use ADODB instead.  ADOR is a subset of ADODB is uses MSADO15.DLL and exists only to maintain backward compatibility.

Also as Richie has pointed out:
1. Use early binding instead of late binding, where possible.
2. Use the connection object.

Change your code as follows:

Dim Conn As ADODB.Connection
Dim RS As ADODB.Recordset
Dim AdoCmd As ADODB.Command

Set Conn = New ADODB.Connection
With Conn
   .ConnectionString = "driver={Microsoft ODBC for Oracle};" & _
                       "server=" & Me.ServerName & ";" & _
                       "PWD=" & g_sPassword & ";" & _
                       "UID=" & g_sUserName & ";"
   .Open
End With

Set RS = New ADODB.Recordset
With RS
   .Source = "Select ..."
   Set .ActiveConnection = Conn
   .CursorType = ???
   .LockType = ???
   .Open Options:= adCmdText

   ...

   .Close
End With
Set rs = Nothing
Conn.Close
Set Conn = Nothing

Anthony
0
 

Expert Comment

by:spiral
ID: 6957349
usually i using ado with oledb provider.

Dim Conn As ADODB.Connection
Dim RS As ADODB.Recordset
Dim AdoCmd As ADODB.Command
Dim ConnString As String

Dim ORCLServerConnect As String

Set Conn = new ADODB.Connection
Set RS = new ADODB.Recordset

conn.open "Provider=OraOLEDB.Oracle;" & _
                    "Data Source=" & ServerName & ";" & _
                    "User Id=myUsername;" & _
                    "Password=myPassword;"


sql5 = "............."

with rs
  .cursorlocation = aduseserver
  .open sql5, conn, adOpenDynamic, adLockOptimistic
end with
 

another url to learn oledb connections using oracle.

http://download-west.oracle.com/otndoc/oracle9i/901_doc/win.901/a90171/using.htm

cheers!
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 6957460
spiral, waht is the idea to post a comment that is so similar to previous one?
0
 

Author Comment

by:vmandem
ID: 6957725
I will try and let you know guys. I appreciate your comments.

VM
0
 

Author Comment

by:vmandem
ID: 6959846
Richie,acperkins

I get the following error after using the early binding technique:

Login Error: 430 , Class doesn't support Automation at

Set RS = New ADOR.Recordset

I didnot find any usefull help from MSDN or anywhere.
What is the alternative.

As I said it works fine on my machine and compiled successfully and made .exe file, no problem running the
.exe file on my machine but give the above error in a different machine.

So which is appropriate to use like the early binding or latebinding.

VM
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 6959910
well, use adodb as ac saids and not ador and try.
0
 

Expert Comment

by:VBMeera
ID: 6961921
Give reference of MS object Library 2.0 and Use Adodb instead of Ador
0
 

Author Comment

by:vmandem
ID: 6962693
VBMEERA

Eventhough you are absoultly right, i have to give points
to acperkins, since i got the answer from him. There is
nothing not to accept your answer. I hope you understand
the suituation.

VM
0
 

Author Comment

by:vmandem
ID: 6962701
acperkins

I really appreciate your answer.

I really appreciate richie simonetti's answer.

I really appreciate everybody's comments. I really thank
everyone for there support and hope continue the same

VM
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 6962706
:O
0
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 6962853
Richie,

Te debo una. <g>

Anthony
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 6963207
Bueno....(grrrrrrrrr!!!!!), viste el top 15?
Que jugador!!!  ....:))))))))
0
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 6963418
Richie,

#14: Congratulations!  Give me about 5 years and I will catch up with you.

Anthony
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 6963527
if you didn't beat me here, maybe i would be at 13! I am not so good with db stuff (i hate it, really)
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Using "ScreenUpdating" 6 73
Help me. 3 60
What .NET URL re-routing tool did I use? 2 74
Where does legacy ASP.NET initialize language? 2 22
Entering time in Microsoft Access can be difficult. An input mask often bothers users more than helping them and won't catch all typing errors. This article shows how to create a textbox for 24-hour time input with full validation politely catching …
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question