
07-09-10, 18:53
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.035
| |
Γιάννη καλησπέρα!
Δεν μπορείς μέσω SQL να προσθαφαιρείς πεδία σε ερώτημα επιλογής και μάλιστα με κριτήρια.
Ίσως χρειαστεί να επανασχεδιάσεις τη δομή των πινάκων σου έτσι που να μη χρειάζεται
να μεταβάλλονται τα ονόματα πεδίων από το χρήστη(!!!)
Αν δεν υπάρχει κάποια διαφορετική προσέγγιση από μέρους σου, προτείνω τον παρακάτω κώδικα VBA που δημιουργεί το ερώτημα εκ νέου σε κάθε του εκτέλεση: Κώδικας: Function Create_Query(TableName As String, QueryName As String, SearchLetters As String)
WizHook.Key = 51488399
Dim MyFields, strSQL As String, i As Integer, tbl As String, _
DynQry As QueryDef, x As String
MyFields = WizHook.GetColumns(TableName)
TableName = "[" & TableName & "]"
MyFields = Split(MyFields, ";")
For i = 0 To UBound(MyFields) - 1
If MyFields(i) Like SearchLetters Then strSQL = strSQL & TableName & ".[" & MyFields(i) & "], "
Next
If InStr(1, strSQL, "]") Then
strSQL = Left(strSQL, Len(strSQL) - 2)
strSQL = "SELECT " & strSQL & " FROM " & TableName
On Error Resume Next
x = CurrentDb.QueryDefs(QueryName).Name
If Err <> 0 Then Err.Clear
If x <> vbNullString Then DoCmd.DeleteObject acQuery, QueryName
If Err = "2008" Then
Err.Clear
DoCmd.Close acQuery, QueryName, acSaveNo
DoCmd.DeleteObject acQuery, QueryName
End If
On Error GoTo ErrH
Set DynQry = CurrentDb.CreateQueryDef(QueryName, strSQL)
'DoCmd.OpenQuery QueryName
Else
ErrH:
MsgBox "Can not create the Query!" & IIf(Err <> 0, vbLf & "Error number: " & Err & _
vbLf & "Error Description : " & Err.Description, vbNullString), vbExclamation
End If
End Function
Sub test()
Create_Query "Table1", "Query1", "a*"
End Sub Αν χρειαστείς κάτι, ...εδώ είμαστε! "Table1" = Το όνομα του πίνακα με τα πεδία α1,α2 κτλ.
"Query1" = Το όνομα του ερωτήματος που θα δημιουργηθεί.
"a*" = Το γράμμα ή τα γραμματα που αποτελούν το κριτήριο. ("*ast" , "*a*" , "a*" κτλ.)
Καλή συνέχεια!
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών
Τελευταία επεξεργασία από το χρήστη Tasos : 09-09-10 στις 09:37.
|