Εμφάνιση ενός μόνο μηνύματος
  #10  
Παλιά 09-09-10, 02:47
Το avatar του χρήστη nisgia
nisgia Ο χρήστης nisgia δεν είναι συνδεδεμένος
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 161
Προεπιλογή

Καλημέρα σε όλους!

Το ίδιο "τραγούδι" αλλά σε λίγο διαφορετική εκτέλεση:

Κώδικας:
Function GetFlexQuery(TableName As String, _
        Optional QueryName As String, _
        Optional Pattern As String) As Recordset
        
    Dim strSQL As String
    Dim fld As Field
    Dim flds As Fields

    On Error Resume Next
    Set flds = CurrentDb.TableDefs(TableName).OpenRecordset.Fields
    
    If Not flds Is Nothing Then
        strSQL = strSQL & "SELECT [" & flds(0).Name & "]"

        If Len(Pattern) Then
            For Each fld In flds
                If fld.Name Like Pattern Then
                    strSQL = strSQL & ", [" & fld.Name & "]"
                End If
            Next fld
        End If

        strSQL = strSQL & " FROM [" & TableName & "]"
        Debug.Print strSQL

        If Len(QueryName) Then
            With DoCmd
                .Close acQuery, QueryName, acSaveNo
                .DeleteObject acQuery, QueryName
                CurrentDb.CreateQueryDef QueryName, strSQL
                Debug.Print "QueryDef """ & QueryName & """ created!"
                Application.RefreshDatabaseWindow
                '.OpenQuery QueryName
            End With
        End If

        Set GetFlexQuery = CurrentDb.OpenRecordset(strSQL)
    End If
End Function

Sub TestFlexQuery()
    GetFlexQuery "Table1", "Query1", "a*"
    Debug.Print GetFlexQuery("Table1", , "b*").Fields.Count
End Sub
Φίλε συνονόματε, ελπίζω τα ονόματα των πεδίων να μην είναι διευθύνσεις κελιών του EXCEL...!

Τα λέμε!
Γιάννης
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!
Απάντηση με παράθεση