Προς το περιεχόμενο

VB6 και MS Access


Shorin

Προτεινόμενες αναρτήσεις

Δημοσ.

Θέλω να δημιουργώ χειροκίνητα μια access βάση με κώδικα απο VB..Έτσι λοιπόν χρησιμοποιώ το ακόλουθο κομμάτι κώδικα..

>
Dim MyDatabase As Database
Dim WorkSpace As WorkSpace
Dim NewTable As TableDef
Dim MyArtist As dao.Index
Dim MyIndex2 As dao.Index
Dim MyIndex3 As dao.Index

sdatabase = App.Path & "\test2.mdb"
If Len(Dir(sdatabase)) = 0 Then
   Set WorkSpace = DBEngine.Workspaces(0)
   ' open database
   
   Set MyDatabase = WorkSpace.CreateDatabase(sdatabase, dbLangGreek)
   MyDatabase.Close
   
   Set MyDatabase = WorkSpace.OpenDatabase(sdatabase)
   Set NewTable = MyDatabase.CreateTableDef("New")
   
  With NewTable
     .Fields.Append .CreateField("Epwnymo", dbText, 255)
  End With
   
   
   MyDatabase.TableDefs.Append NewTable
   NewTable.Indexes.Refresh

   MyDatabase.Close
End If

Η βάση δημιουργείται κανονικά αν και απ' ότι φαντάζομαι υπάρχει πρόβλημα με τα indexes... (Πως με αυτόν τον κώδικα θα δημιουργήσω και τα αντίστοιχα indexes?)

 

Συνεχίζω...Όταν προσπαθώ από το πρόγραμμα να ανοίξω την βάση χρησιμοποιώντας τον ακόλουθο κώδικα :

>
Dim data As Database
Dim Recset As Recordset
Dim i As Long

'On Error GoTo 5
GoTo 10
5 MsgBox (Err.Description & Chr$(13)), 16
Unload Me
Exit Sub

10 Set data = OpenDatabase(App.Path & "\test2.mdb")
Set Recset = data.OpenRecordset("New", dbOpenTable)

If Recset.RecordCount = 0 Then GoTo 20
  Recset.MoveLast
  
20 Recset.AddNew
     Recset!Epwnymo = Text1.Text

   Recset.Update
   Recset.Close
   data.Close

μου βγάζει error : Type Mismatch

Στο debug διαπιστώνω ότι είναι στο

>
Set Recset = data.OpenRecordset("New", dbOpenTable)

όπου το RecSet δεν παίρνει τιμή...

 

Τι ακριβώς γίνεται ρε παιδιά..?

Έχω μπερδευτεί και κοντεύω να σκάσω..!

Δημοσ.

Gia to recordset:

>
Dim RS as ADODB.Recordset
Set RS = New ADODB.Recordset

Xreiazesai kai to connection:

>
Dim Conn as ADODB.Connection
Set Conn = New ADODB.Connection
 With Conn
 .CursorLocation = adUseClient
 .ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=C:\path\filename.mdb"
 .Open
 End With

Gia na kaneis diko sou query, gia update, delete, otidipote:

>
Dim yourQuery As String
yourQuery = "Select ... from"  etc

 

Auta ta tria xreiazesai, gia leptomereies, kane ena search sto msdn i google.

 

Edit by Dionisos: Vazete

 tags otan grafete kwdika![/i]
Δημοσ.

Οκ! Σ'ευχαριστώ...Το δοκίμασα και φαίνεται να δουλεύει κανονικά...Το θέμα είναι όμως πως σωστά φαντάστηκα...Δεν μπορώ να κάνω το save γιατί δεν έχω δημιουργήσει το αντίστοιχο index για το field epwnymo... Μπορείς να με βοηθήσεις λίγο στο πώς θα πρέπει να τροποποιήσω των κώδικα που σου έδωσα παραπάνω για να φτιάχνω και το index μετά από κάθε field?

Δημοσ.

Mou fainetati ta connection objects exoun ena method "command" me to opoio stelneis sql queries sthn vash sou.

Apla steile to SQL query gia dhmiourgia/update/delete index afou teleiwseis oti exeis na kaneis.

Δημοσ.

Να κάνω και εγώ μια ερώτηση επί της ευκαιρίας.

Όταν δημιουργούμε μια βάση access στην VBasic με τον τρόπο που αναφέρετε και μετά πάμε να την ανοίξουμε με την Microsoft Access μας λέει ότι αυτή η βάση δημιουργήθηκε με μια προηγούμενη έκδοση της Access και πρέπει πρώτα να την μετατρέψουμε κ.τ.λ..

Αν όμως την μετατρέψουμε μετά δεν την αναγνωρίζει το πρόγραμμα, ούτε και αν την ξανά μετατρέψουμε πάλι στην παλιά έκδοση που είχε πριν την επεξεργασία.

Το ερώτημα είναι : υπάρχει κάποιο πρόγραμμα επεξεργασίας αρχείων Access το οποίο να επεξεργάζεται αρχεία Access 95 η 97 χωρίς να χρειαστεί να την μετατρέψουμε πρώτα σε μια σε μορφή Access 2000 η 2004 ?

Δημοσ.
Να κάνω και εγώ μια ερώτηση επί της ευκαιρίας.

Όταν δημιουργούμε μια βάση access στην VBasic με τον τρόπο που αναφέρετε και μετά πάμε να την ανοίξουμε με την Microsoft Access μας λέει ότι αυτή η βάση δημιουργήθηκε με μια προηγούμενη έκδοση της Access και πρέπει πρώτα να την μετατρέψουμε κ.τ.λ..

Αν όμως την μετατρέψουμε μετά δεν την αναγνωρίζει το πρόγραμμα' date=' ούτε και αν την ξανά μετατρέψουμε πάλι στην παλιά έκδοση που είχε πριν την επεξεργασία.

[b']Το ερώτημα είναι : [/b]υπάρχει κάποιο πρόγραμμα επεξεργασίας αρχείων Access το οποίο να επεξεργάζεται αρχεία Access 95 η 97 χωρίς να χρειαστεί να την μετατρέψουμε πρώτα σε μια σε μορφή Access 2000 η 2004 ?

 

Αν εγκαταστησεις το SP5 για VB6 τοτε θα μπορεις να ανοιγεις αρχεια σε μορφη Access 2000 μεσα απο την VB. Οποτε μπορεις μεσα απο την Access να δημιουργεις την βαση και μετα να την ανοιγεις με κωδικα η χωρις μεσα απο την VB. O Visual Data Manager της VB ΔΕΝ μπορει να δημιουργησει βαση σε μορφη Access 2000 και ανω. Ελπιζω να σε βοηθησα.

Δημοσ.

Αν εγκαταστησεις το SP5 για VB6 τοτε θα μπορεις να ανοιγεις αρχεια σε μορφη Access 2000 μεσα απο την VB. Οποτε μπορεις μεσα απο την Access να δημιουργεις την βαση και μετα να την ανοιγεις με κωδικα η χωρις μεσα απο την VB. O Visual Data Manager της VB ΔΕΝ μπορει να δημιουργησει βαση σε μορφη Access 2000 και ανω. Ελπιζω να σε βοηθησα.

 

Αυτό ΟΚ...Θα το δοκιμάσουμε ...Άλλο δεν κατάλαβα όμως...Πως μπορούμε στο declare του CreateDatabase να δηλώσουμε dbVersion μεγαλύτερη από 3 (αν θυμάμαι καλά 3 είναι το ανώτερο)...

Δηλ να την φτιάξουμε από την αρχή με κώδικα για access 2000 και όχι μέσω Access...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...