Ερώτηση

Συζητήσεις για τις γλώσσες του dot Net και για του Visual Studio της Microsoft

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
jbalis
Δημοσιεύσεις: 1
Εγγραφή: 07 Δεκ 2002 23:56

Ερώτηση

Δημοσίευση από jbalis » 08 Δεκ 2002 00:58

Γειά σας.Είμαι καινούριος στον προγραματισμό και θέλω να μάθω πώς μπορώ να εμφανίσω σε ένα σύνθετο πλαίσιο με vb όλες τις εγγραφές ενός παιδίου απο πίνακα βάσης δεδομένων της Access.

Άβαταρ μέλους
agrippas
Script Master
Δημοσιεύσεις: 494
Εγγραφή: 18 Ιούλ 2002 14:52
Τοποθεσία: Υπερπέραν
Επικοινωνία:

Ερώτηση

Δημοσίευση από agrippas » 08 Δεκ 2002 05:17

Για να πω την αλήθεια, είναι λίγο ζόρικο αυτό που πας να κάνεις για αρχή! Προσπάθησέ το όμως... Σου δίνω μία subroutine και μία function σχετική που βρήκα στο freevbcode.com, δουλεύει με πλαίσια λίστας και σύνθετα πλαίσια.

Πώς τα χρησιμοποιείς:

Στο project σου δίνεις τις δηλώσεις

Κώδικας: Επιλογή όλων

Dim sTables(1) As String
sTables(0) = "Table1"
sTables(1) = "Table2"
GemiseThLista "C:\MyDatabase.mdb", Combo1, sTables
Πρέπει να έχεις φτιάξει μια αναφορά DAO, αν δεν ξέρεις πώς, κοίταξε σε κάποια παλιότερη απάντησή μου σ' αυτό το forum.


Στην ενότητα general μιας λειτουργικής μονάδας ρίχνεις τη subroutine και τη function που σου δίνω:

Η υπορουτίνα:

Κώδικας: Επιλογή όλων

Public Sub GemiseThLista(DBPath As String, _
ListControl As Object, TableNames() As String, _
Optional Qualify As Boolean = False)

'Qualify: (proairetikh) Thn kaneis true an 8eleis
'na vazeis to onoma tou pediou me to onoma tou pinaka
'p.x, MyTable.MyField, anti gia to sketo MyField)

Dim lCtr As Long, lCnt As Long
Dim oFields As Collection
Dim i As Integer
Dim sItem As String, sTest As String

Dim iTableStart As Integer, iTableEnd As Integer
Dim db As DAO.Database
Dim td As DAO.TableDef

iTableStart = LBound(TableNames)
iTableEnd = UBound(TableNames)

On Error Resume Next
'testarisma-epikyrwsh
ListControl.AddItem "a"
ListControl.Clear
If Err.Number > 0 Then Exit Sub

sTest = Dir(DBPath)
If sTest = "" Then Exit Sub

Set db = Workspaces(0).OpenDatabase(DBPath)
If Err.Number > 0 Then Exit Sub

For i = iTableStart To iTableEnd
    Set td = db.TableDefs(TableNames(i))
    If Err.Number > 0 Then
        db.Close
        Exit Sub
    End If
Next

For i = iTableStart To iTableEnd
    Set td = db.TableDefs(TableNames(i))
    Set oFields = FieldNames(td)
    lCnt = oFields.Count
    
    For lCtr = 1 To lCnt
        sItem = IIf(Qualify, TableNames(i) & "." & _
           oFields(lCtr), oFields(lCtr))
        ListControl.AddItem sItem
    Next
Next

db.Close

End Sub
H συνάρτηση:

Κώδικας: Επιλογή όλων

Private Function FieldNames(td As DAO.TableDef) As Collection

Dim oCol As New Collection
Dim i As Integer

For i = 1 To td.Fields.Count
    oCol.Add td.Fields(i - 1).Name
Next

Set FieldNames = oCol

End Function
Ο κώδικας δεν είναι δικός μου και δεν τον έχω τεστάρει, μια και μετά τα τελευταία έξαλλα φορμαρίσματα δεν αξιώθηκα ακόμα να βρω πού έχω πετάξει το cd με το visual studio για να το ξαναεγκαταστήσω :lol: :lol: :lol: , εύχομαι και ελπίζω να δουλέψει!

Άβαταρ μέλους
agrippas
Script Master
Δημοσιεύσεις: 494
Εγγραφή: 18 Ιούλ 2002 14:52
Τοποθεσία: Υπερπέραν
Επικοινωνία:

Ερώτηση

Δημοσίευση από agrippas » 08 Δεκ 2002 05:34

Επίσης: Ένα πολύ καλό έτοιμο project που στηρίζεται στη βάση Northwind (αν θες αλλάζεις database και το φέρνεις στα μέτρα σου), μπορείς να βρεις εδώ:

http://www.freevbcode.com/ShowCode.Asp?ID=2607

Απάντηση

Επιστροφή στο “dot Net και Visual Studio”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης