Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Φόρμες ] SQL σε κωδικα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/3117-sql-se-kodika.html)

asterix 19-04-14 10:50

SQL σε κωδικα
 
Καλημερα και καλη Ανασταση σε ολη την παρεα

Προσπαθώ να συντάξω το παρακάτω ερώτημα σε κώδικα και το πρόβλημα μου είναι ότι μου βγάζει
Run-time error 3075 σφάλμα σύνταξης (λείπει τελεστής).
Δεν μπορώ να καταλάβω τη λάθος κάνω
Ευχαριστώ πολύ

Κώδικας:

Private Sub Εντολή39_Click()
 Dim StrSql As String
    StrSql = "SELECT Customers.Ονομα, Customers.Επωνυμο, Customers.Τηλεφωνο, " & _
    "Customers.Τηλεφωνο2, Customers.Τκωδ" & _
    "FROM Customers " & _
    "WHERE Customers.Επωνυμο =" & Me.ΟΝΟΜΑ.Value & ";"
DoCmd.RunSQL StrSql
End Sub


Tasos 19-04-14 12:16

Καλημέρα και χρόνια πολλά!

Ο κώδικας αυτόςπεριέχει ένα συντακτικό λάθος δηλαδή:
το Customers.Τκωδ" & _ θα πρέπει να είναι Customers.Τκωδ " & _ (ένα κενό μετά το Τκωδ ).

H γραμμή: DoCmd.RunSQL StrSql δεν θα επιστρέψει κάτι.

Η συμβολοσειρά που δημιουργεί ο κώδικας παραπέμπει σε ερώτημα επιλογής.

Θα πρέπει λοιπόν να υπάρχει και ένα αντικείμενο RecordSet και να γίνει χρήση του
της μεθόδου OpenRecordset του αντικειμένου CurrentDb (DAO.Database) όπου το πρώτο όρισμα θα είναι η μεταβλητή StrSql δηλαδή:


Κώδικας:

Sub test()
    Dim rs As DAO.Recordset
    Dim StrSql As String
    StrSql = "SELECT Customers.Ονομα, Customers.Επωνυμο, Customers.Τηλεφωνο, " & _
            "Customers.Τηλεφωνο2, Customers.Τκωδ " & _
            "FROM Customers " & _
            "WHERE Customers.Επωνυμο =" & Me.ΟΝΟΜΑ.Value 'Αν το επώνυμο είναι αριθμός (πχ. ID από ComboBox)
    ' Αν το επώνυμο είναι κείμενο τότε:
    ' "WHERE Customers.Επωνυμο ='" & Me.ΟΝΟΜΑ.Value & "'"
    Set rs = CurrentDb.OpenRecordset(StrSql, dbOpenDynaset)
    '.........
End Sub

Φιλικά

Τάσος

asterix 19-04-14 12:23

Τάσο χίλια ευχαριστώ θα κάνω δοκιμή και αν χρειαστεί επανέρχομαι

asterix 22-04-14 20:17

Τάσο για να μου κάνει απλή προβολή διδομένων το παραπάνω ερώτημα χρειάζεται κάποια τροποποίηση;

Tasos 23-04-14 05:48

Καλημέρα.
Για απλή προβολή δεδομένων θα πρέπει να δημιουργήσεις μια έκθεση που θα περιέχει τα πεδία
από τον πίνακα "Customers" που θα ανοίγεις με την παρακάτω εντολή:
Κώδικας:

DoCmd.OpenReport "Το_Όνομα_της_Έκθεσης", acViewReport, , "Επωνυμο ='" & Me.Επωνυμο  & "'"
ή να δημιουργήσεις ένα ερώτημα που θα ανοίγεις από τη φόρμα μετον παρακάτω κώδικα:

Κώδικας:

Private Sub cmdOpenQuery_Click()
    Dim StrSql As String
    Dim Qry As QueryDef
    StrSql = "SELECT Customers.Ονομα, Customers.Επωνυμο, Customers.Τηλεφωνο, " & _
            "Customers.Τηλεφωνο2, Customers.Τκωδ " & _
            "FROM Customers " & _
            "WHERE Customers.Επωνυμο ='" & Me.Επωνυμο & "'"
    Set Qry = CurrentDb.QueryDefs("Το_Όνομα_του_Ερωτήματος")
    Qry.SQL = StrSql
    DoCmd.OpenQuery "Το_Όνομα_του_Ερωτήματος"
End Sub

Καλή συνέχεια!

Τάσος

asterix 23-04-14 08:15

Τασο χιλια ευχαριστώ :thumbup1::thumbup1:


Η ώρα είναι 23:11.

Ms-Office.gr - ©2000 - 2025, Jelsoft Enterprises Ltd.


Content Relevant URLs by vBSEO 3.3.2