Am 10.12.2015 um 11:48 schrieb Wilfried Dietrich:
> Was ist bei der VS6 Installation schief gelaufen?
> Wie kann ich den Abbruch vermeiden?
> Wo muss ich noch einen Haken raus nehmen?
>
> Ich werde wahrscheinlich mein W10-PC neu aufsetzen und
> möchte dann keinen Fehler machen.
Dass das "drüberkopieren" des VB98-Ordners (aus dem anderen System)
Abhilfe geschaffen hat, deutet darauf hin, dass Du dort offenbar
ein höheres VB6-Servicepack installiert hattest (aktuell ist glaube
ich VB6-SP6-b).
Ein Neuaufsetzen des Systems ist (IMO) nicht nötig - und auch
die Neuinstallation von VB6 kannst Du Dir sparen - das Einzige
was ich nochmal (sicherheitshalber) drüberbügeln würde, wäre
eine Installation des Servicepacks in version 6b.
Bzgl. der Round-Function in Jet-SQL - die gehört eigentlich
schon immer dazu (genau wie 'Format' oder DateDiff/DatePart & Co.).
Vielleicht hast Du bei Deinem (JET) Connection-String irgendwas falsch
gemacht - ich benutz hier immer version 4 und damit klappt z.B. das
folgende Code-Schnipsel anstandslos (auf Win8 genauso wie auf XP -
egal ob IDE oder kompiliert).
Das Beispiel ist in dem Falle LateBound (also einfach in eine
leere VB-Form kopieren):
Option Explicit
Const JetPrefix = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
Private Cnn, Rs, DBFileName As String
Private Sub Form_Load()
DBFileName = Environ("temp") & "\test.mdb"
On Error Resume Next
Kill DBFileName 'Kill the test.mdb-File in the temp-directory
On Error GoTo 0
'create a new, empty *.mdb-File
CreateObject("ADOX.Catalog").Create JetPrefix & DBFileName
Set Cnn = CreateObject("ADODB.Connection")
Cnn.CursorLocation = 3 'adUseClient
Cnn.Open JetPrefix & DBFileName 'open the Connection
'create a test-table on the new (yet empty) test.mdb
Cnn.Execute "Create Table T1(ID AutoIncrement, Dbl Double)"
'add a few new records
Set Rs = GetRs("Select * From T1 Where 1=0")
Rs.AddNew: Rs!Dbl = 2.245
Rs.AddNew: Rs!Dbl = 2.255
Rs.AddNew: Rs!Dbl = 2.265
Rs.UpdateBatch
Set Rs = GetRs("Select ID, Round(Dbl, 2) As Dbl_Rounded From T1")
DumpRs Rs
Cnn.Execute "Update T1 Set Dbl = Round(Dbl, 2) - 1.5 Where ID=2"
Set Rs = GetRs("Select ID, Round(Dbl, 2) As Dbl_Rounded From T1")
DumpRs Rs
End Sub
Public Function GetRs(Query As String)
Set GetRs = CreateObject("ADODB.Recordset")
GetRs.Open Query, Cnn, 3, 4 'adOpenStatic, adLockBatchOptimistic
End Function
Private Sub DumpRs(Rs) 'a PrintOut-routine for the current Rs-Content
Dim Fld
For Each Fld In Rs.Fields: Debug.Print Fld.Name,: Next 'HeaderPrint
Debug.Print vbCrLf; String(64, "-")
Do Until Rs.EOF 'and the Rs-Record-Loop for the Field-Value-Dump
For Each Fld In Rs.Fields: Debug.Print Fld.Value,: Next
Debug.Print
Rs.MoveNext
Loop
Debug.Print
End Sub
'************** End of Form-Code ************
Debug-Window-Output des obigen Beispiels:
ID Dbl_Rounded
----------------------------------------------------------------
1 2,24
2 2,26
3 2,26
ID Dbl_Rounded
----------------------------------------------------------------
1 2,24
2 0,76
3 2,26
HTH
Olaf