Shorin Δημοσ. 14 Μαΐου 2004 Δημοσ. 14 Μαΐου 2004 Θέλω να δημιουργώ χειροκίνητα μια 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 δεν παίρνει τιμή... Τι ακριβώς γίνεται ρε παιδιά..? Έχω μπερδευτεί και κοντεύω να σκάσω..!
Giannis__ Δημοσ. 14 Μαΐου 2004 Δημοσ. 14 Μαΐου 2004 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]
Shorin Δημοσ. 15 Μαΐου 2004 Μέλος Δημοσ. 15 Μαΐου 2004 Οκ! Σ'ευχαριστώ...Το δοκίμασα και φαίνεται να δουλεύει κανονικά...Το θέμα είναι όμως πως σωστά φαντάστηκα...Δεν μπορώ να κάνω το save γιατί δεν έχω δημιουργήσει το αντίστοιχο index για το field epwnymo... Μπορείς να με βοηθήσεις λίγο στο πώς θα πρέπει να τροποποιήσω των κώδικα που σου έδωσα παραπάνω για να φτιάχνω και το index μετά από κάθε field?
kostas_crete Δημοσ. 17 Μαΐου 2004 Δημοσ. 17 Μαΐου 2004 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.
Tipos Δημοσ. 17 Μαΐου 2004 Δημοσ. 17 Μαΐου 2004 Να κάνω και εγώ μια ερώτηση επί της ευκαιρίας. Όταν δημιουργούμε μια βάση access στην VBasic με τον τρόπο που αναφέρετε και μετά πάμε να την ανοίξουμε με την Microsoft Access μας λέει ότι αυτή η βάση δημιουργήθηκε με μια προηγούμενη έκδοση της Access και πρέπει πρώτα να την μετατρέψουμε κ.τ.λ.. Αν όμως την μετατρέψουμε μετά δεν την αναγνωρίζει το πρόγραμμα, ούτε και αν την ξανά μετατρέψουμε πάλι στην παλιά έκδοση που είχε πριν την επεξεργασία. Το ερώτημα είναι : υπάρχει κάποιο πρόγραμμα επεξεργασίας αρχείων Access το οποίο να επεξεργάζεται αρχεία Access 95 η 97 χωρίς να χρειαστεί να την μετατρέψουμε πρώτα σε μια σε μορφή Access 2000 η 2004 ?
geo1st487 Δημοσ. 17 Μαΐου 2004 Δημοσ. 17 Μαΐου 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 και ανω. Ελπιζω να σε βοηθησα.
Tipos Δημοσ. 18 Μαΐου 2004 Δημοσ. 18 Μαΐου 2004 Ευχαριστώ για την απάντηση. Κατέβασα ήδη το SP5 και θα δοκιμάσω την συμβουλή σου.
Shorin Δημοσ. 20 Μαΐου 2004 Μέλος Δημοσ. 20 Μαΐου 2004 Αν εγκαταστησεις το SP5 για VB6 τοτε θα μπορεις να ανοιγεις αρχεια σε μορφη Access 2000 μεσα απο την VB. Οποτε μπορεις μεσα απο την Access να δημιουργεις την βαση και μετα να την ανοιγεις με κωδικα η χωρις μεσα απο την VB. O Visual Data Manager της VB ΔΕΝ μπορει να δημιουργησει βαση σε μορφη Access 2000 και ανω. Ελπιζω να σε βοηθησα. Αυτό ΟΚ...Θα το δοκιμάσουμε ...Άλλο δεν κατάλαβα όμως...Πως μπορούμε στο declare του CreateDatabase να δηλώσουμε dbVersion μεγαλύτερη από 3 (αν θυμάμαι καλά 3 είναι το ανώτερο)... Δηλ να την φτιάξουμε από την αρχή με κώδικα για access 2000 και όχι μέσω Access...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.