ADO connection with SQL back-end opening problem. (1 Viewer)

Tel1958

New member
Local time
Today, 15:25
Joined
Feb 21, 2019
Messages
2
Hi all,
I know this might not be the cleanest or best way of doing this, but I had it sort of working once before, but I'll be damned if I can see what the problem is this time?
I am using Access 2016 for the DB and Forms etc, and VB to code it.
Form 1 requires users to enter data, this is saved to an Access DB, where it will be searchable and editable (I hope) at a later point.
I will be wanting to save the user selected pictures in a separate folder, with links to that data saved in the DB, so the DB doesn't get bloated.

I get a '424 Object required' error on the line - Set Cmn = Server.CreateObject("ADODB.Command")

Is there a better way of doing this please?
Any help would be greatly appreciated.


Here is the rest of the code.

Option Compare Database
Public Sub OpenConnection()

Dim sSQLQry As String
Dim Conn As New ADODB.Connection
Set Conn = New ADODB.Connection
Dim RS As New ADODB.Recordset
Set RS = New ADODB.Recordset
Dim Cmn As ADODB.Command
Set Cmn = Server.CreateObject("ADODB.Command")
Set Cmn.ActiveConnection = Conn
Dim DBPath As String, sconnect As String
DBPath = "C:\DB1_Trial.accdb"
sconnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBPath
Conn.Open sconnect


End Sub

Public Sub InsertIntoTable()


'Define SQL query.

Cmn.CommandText = "INSERT INTO CData (C Picture, Payment Image, C Name, D, Country, Coin Year, Weight," _
& "Width mm, Thickness mm, Material, Condition, Quantity, Current Value, Price Paid, Postage Paid, Total Cost, Required," _
& "Ordered, Date Ordered, Paid, Payment Method, Website, Order Notes, Notes) VALUES" _
& "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"

'Save a prepared (or pre-compiled) version of the query specified in CommandText
'property before a Command object's first execution.

Cmn.Prepared = True

'Define query parameter configuration information.

Cmn.Parameters.Append Cmn.CreateParameter("C_Picture_Data", adVarChar, , 50)
Cmn.Parameters.Append Cmn.CreateParameter("Payment_Image_Data", adVarChar, , 50)
Cmn.Parameters.Append Cmn.CreateParameter("C_Name_Data", adVarChar, , 100)
Cmn.Parameters.Append Cmn.CreateParameter("D_Data", adVarChar, , 25)
Cmn.Parameters.Append Cmn.CreateParameter("Country_Data", adVarChar, , 50)
Cmn.Parameters.Append Cmn.CreateParameter("C_Year_Data", adInteger, , 50)
Cmn.Parameters.Append Cmn.CreateParameter("Weight_Data", adVarChar, , 25)
Cmn.Parameters.Append Cmn.CreateParameter("Width_mm_Data", adVarChar, , 25)
Cmn.Parameters.Append Cmn.CreateParameter("Thickness_mm_Data", adVarChar, , 25)
Cmn.Parameters.Append Cmn.CreateParameter("Material_Data", adVarChar, , 30)
Cmn.Parameters.Append Cmn.CreateParameter("Condition_Data", adVarChar, , 25)
Cmn.Parameters.Append Cmn.CreateParameter("Quantity_Data", adInteger, , 50)
Cmn.Parameters.Append Cmn.CreateParameter("Current_Value_Data", adCurrency, , 50)
Cmn.Parameters.Append Cmn.CreateParameter("Price_Paid_Data", adCurrency, , 50)
Cmn.Parameters.Append Cmn.CreateParameter("Postage_Paid_Data", adCurrency, , 50)
Cmn.Parameters.Append Cmn.CreateParameter("Total_Cost_Data", adCurrency, , 50)
Cmn.Parameters.Append Cmn.CreateParameter("Required_Data", adVarChar, , 5)
Cmn.Parameters.Append Cmn.CreateParameter("Ordered_Data", adVarChar, , 5)
Cmn.Parameters.Append Cmn.CreateParameter("Date_Ordered_Data", adDBDate, , 15)
Cmn.Parameters.Append Cmn.CreateParameter("Paid_Data", adVarChar, , 5)
Cmn.Parameters.Append Cmn.CreateParameter("Payment_Method_Data", adVarChar, , 50)
Cmn.Parameters.Append Cmn.CreateParameter("Website_Data", adVarChar, , 100)
Cmn.Parameters.Append Cmn.CreateParameter("Order_Notes_Data", adVarChar, , 255)
Cmn.Parameters.Append Cmn.CreateParameter("Notes_Data", adVarChar, , 255)

'Define and execute first insert.

Cmn("Coin Picture") = C_Picture_Data
Cmn("Payment Image") = Payment_Image_Data
Cmn("Coin Name") = C_Name_Data
Cmn("Denom") = D_Data
Cmn("Country") = Country_Data
Cmn("Coin Year") = C_Year_Data
Cmn("Weight") = Weight_Data
Cmn("Width mm") = Width_mm_Data
Cmn("Thickness mm") = Thickness_mm_Data
Cmn("Material") = Material_Data
Cmn("Condition") = Condition_Data
Cmn("Quantity") = Quantity_Data
Cmn("Current Value") = Current_Value_Data
Cmn("Price Paid") = Price_Paid_Data
Cmn("Postage Paid") = Postage_Paid_Data
Cmn("Total Cost") = Total_Cost_Data
Cmn("Required") = Required_Data
Cmn("Ordered") = Ordered_Data
Cmn("Date Ordered") = Date_Ordered_Data
Cmn("Paid") = Paid_Data
Cmn("Payment Method") = Payment_Method_Data
Cmn("Website") = Website_Data
Cmn("Order Notes") = Order_Notes_Data
Cmn("Notes") = Notes_Data

Cmn.Execute , , adCmdText + adExecuteNoRecords


Done:
Set Rs1 = Nothing

Set Cmd1 = Nothing
Set Conn1 = Nothing

Exit Sub


AdoError:

i = 1
On Error Resume Next

' Enumerate Errors collection and display properties of
' each Error object (if Errors Collection is filled out)

Set Errs1 = Conn1.Errors
For Each errLoop In Errs1
With errLoop
strTmp = strTmp & vbCrLf & "ADO Error # " & i & ":"
strTmp = strTmp & vbCrLf & " ADO Error # " & .Number
strTmp = strTmp & vbCrLf & " Description " & .Description
strTmp = strTmp & vbCrLf & " Source " & .Source
i = i + 1
End With
Next

AdoErrorLite:

' Get VB Error Object's information

strTmp = strTmp & vbCrLf & "VB Error # " & Str(Err.Number)
strTmp = strTmp & vbCrLf & " Generated by " & Err.Source
strTmp = strTmp & vbCrLf & " Description " & Err.Description
MsgBox strTmp

' Clean up gracefully without risking infinite loop in error handler

On Error GoTo 0
GoTo Done
End Sub
 

cheekybuddha

AWF VIP
Local time
Today, 15:25
Joined
Jul 21, 2014
Messages
2,267
I know this was a long time ago, but either:

get rid of the 'Server.' (lloks like you copied the code from some ASP.net script,
Code:
Set Cmn = CreateObject("ADODB.Command")

Or just use instead:
Code:
Set Cmn = New ADODB.Command

hth,

d
 

Users who are viewing this thread

Top Bottom