Discussion:
Typen unverträglich
(zu alt für eine Antwort)
Christian Pardun
2004-06-09 11:31:13 UTC
Permalink
Hallo nochmal Zusammen,

ich habe folgende VBA-Anweisung geschrieben und bekomme
den Fehler "Typen unverträglich". Keine AHnung warum:

:Das Module:
Option Explicit

Public Cnxn As ADODB.Connection

Public Sub openDatabase()

' open the database connection
Set Cnxn = New Connection
Call Cnxn.Open
("ODBC;DATABASE=SupportSystem;UID=supportuser;PWD=ae03gm09
bx;DSN=SupportSystem", "supportuser", "ae03gm09bx", -1)

End Sub

Public Sub closeDatabase()

' close the database connection
Cnxn.Close

End Sub

Function openRecordset(strSQL As String) As Recordset

' Get the recordset
Dim rst As New Recordset
Call rst.Open(strSQL, Cnxn, adOpenForwardOnly,
adLockReadOnly, -1)
Set openRecordset = rst

End Function

----------------------------------------------------------

'Die VBA-Anweisung:


Private Sub SelectCompany_Exit(Cancel As Integer)

'On Error GoTo fehler:
Dim rst As ADODB.Recordset
Dim strQuery As String
Dim strQueryUpd As String
Dim strMessage As String
Dim strUpdateValue As Object
Dim cmdChange As ADODB.Command
Dim strSQLChange As String

' this sub is called by the report generator tool
Call DatabaseAccess.openDatabase

strQuery = "SELECT idkey FROM company WHERE
CompanyName = '" & SelectCompany.Value & "'"
Set rst = DatabaseAccess.openRecordset(strQuery)

Set strUpdateValue = rst.Fields(0)

' Create command object
Set cmdChange = New ADODB.Command
Set cmdChange.ActiveConnection = Cnxn

If Not rst.EOF Then

strSQLChange = "Update Buglist set idcompany
= '" & strUpdateValue & "'"
cmdChange.CommandText = strSQLChange

Cnxn.Execute cmdChange, rst, -1

'Cnxn.ExecuteCommand cmdChange, rst
'MsgBox strSQLChange
'MsgBox strQuery
'Set rs.Execute = DatabaseAccess.openRecordset
(strQuery)

End If
rst.Close

End Sub
Henry Habermacher [MVP Access]
2004-06-09 18:08:02 UTC
Permalink
Post by Christian Pardun
ich habe folgende VBA-Anweisung geschrieben und bekomme
Aber wo dass der Fehler genau auftritt, willst Du uns nicht verraten? Warum nicht?

Gruss
Henry
--
Keine E-Mails auf Postings
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com/AccessFAQ.htm
OH: Online Hilfe von MS Access (Taste F1)
Downloads: http://www.dbdev.org
Christian Pardun
2004-06-09 23:06:59 UTC
Permalink
Hi Henry,

in der zeile:

Cnxn.Execute cmdChange, rst, -1


beim Ausführen von Cnxn.Execute
steht er mit einer gelben Makierung auf Execute und
schreibt : "Typen unverträglich".

Das verstehe ich halt nicht.

Vielen Dank im Voraus.

Christian
-----Originalnachricht-----
Post by Christian Pardun
ich habe folgende VBA-Anweisung geschrieben und
bekomme
Aber wo dass der Fehler genau auftritt, willst Du uns
nicht verraten? Warum nicht?
Gruss
Henry
--
Keine E-Mails auf Postings
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com/AccessFAQ.htm
OH: Online Hilfe von MS Access (Taste F1)
Downloads: http://www.dbdev.org
.
Henry Habermacher [MVP Access]
2004-06-10 00:44:04 UTC
Permalink
Post by Christian Pardun
Cnxn.Execute cmdChange, rst, -1
beim Ausführen von Cnxn.Execute
steht er mit einer gelben Makierung auf Execute und
schreibt : "Typen unverträglich".
Ich schon, cmdChange, rst oder -1 sind falsch oder nicht definiert,
meint Cnxn.Execute. was sagt den die Variablenverfolgung zu den
einzelnen Paramentern? ist z.B. rst nicht evt. Nothing oder so? oder
vielleicht zuviele Parameter angegeben?

Gruss
Henry
--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com/AccessFAQ.htm
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org
Christian Pardun
2004-06-10 08:18:45 UTC
Permalink
Hi Henry,

ich habe den Fehler gefunden. Du hattest recht,
die Variablen und deren Deklaration war nicht
in Ordnung.

Aber noch etwas anderes:

Bei jedem Datensatz, den ich anlegen wird eine
UU-Idey in der Tabelle erzeugt, die in der Spalte
idkey gespeichert wird. Wie kann ich die jeweils aktuelle
UU-Idkey des aktuellen Datensatzes erfragen und benutzen.

Mit der CurrendRecord-Eigenschaft bekomme ich ja nur
einen Long-Wert mit der Nummer des Datensatzes. Ich
brauche aber die UU-Id aus der Datenbank, um am aktuellen
Datensatz etwas zu ändern.

Vielen Dank im Voraus.

Gruß CHristian
Henry Habermacher [MVP Access]
2004-06-10 13:21:12 UTC
Permalink
Hallo Christian
Post by Christian Pardun
ich habe den Fehler gefunden. Du hattest recht,
die Variablen und deren Deklaration war nicht
in Ordnung.
Bei jedem Datensatz, den ich anlegen wird eine
UU-Idey in der Tabelle erzeugt, die in der Spalte
idkey gespeichert wird. Wie kann ich die jeweils aktuelle
UU-Idkey des aktuellen Datensatzes erfragen und benutzen.
Mit der CurrendRecord-Eigenschaft bekomme ich ja nur
einen Long-Wert mit der Nummer des Datensatzes. Ich
brauche aber die UU-Id aus der Datenbank, um am aktuellen
Datensatz etwas zu ändern.
Was ist das für eine Datenbank? Ist das etwas wie eine Identity im SQL
Server? Oder eher etwas wie eine GUID oder ein Timestamp? Mir ist kein
Feldtyp UU-Idey bekannt, tönt aber irgendwie wie Universial Unique
Identification Key. Ich denke mal beim Hersteller der Datenbank sollte
bekannt sein, wie diese ausgelesen werden kann. Falls es eine GUID ist,
dafür gibt es eine VBA FUnktion GUIDToString, wenn ich micht nicht
täusche. Ich selber verzichte jeweils auf diese Felder, rsp. überlasse
diese ihrem Schicksal und Access handelt diese ganz gut (wie z.B. das
TimeStamp Feld in einer SQL Server Datenbank, einfach zur Tabelle
hinzufügen, Tabelle in Access neu einbinden und vergessen. Schon läuft's
reibungsloser als vorher).

Sorry, dass ich hier nicht weiterhelfen kann.

Gruss
Henry
--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com/AccessFAQ.htm
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org
Lesen Sie weiter auf narkive:
Loading...