Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Πρόβλημα στην σύνταξη του κώδικα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/3231-problima-stin-sintaksi-toy-kodika.html)

γιώργοςΚ 07-07-14 23:58

Πρόβλημα στην σύνταξη του κώδικα
 
Καλησπέρα σε όλους τους φίλους,

προσπαθώ να γράψω έναν κώδικα έτσι ώστε να παίρνει τα δεδομένα απο ένα ερώτημα (QryPrint) και να μου τα μάζει σε έναν temporary table (tblWeekData) έτσι ώστε να μπορέσω να τα παρουσιάζω σε μια έκθεση.

Έχω γράψει τον πιο κάτω κώδικα και η vba κτυπά συνεχώς στο DietID το οποίο θέλω να παίρνει απο το απο το ερώτημα. Παραθετω τον κώδικα και θα εκτιμήσω εάν κάποιος φίλος απο το φόρουμ θα μπορούσε να με βοηθήσει

Sub OpenReport()
Dim i As Integer, x As Integer, tmpMax As Integer, TheFood As String
Dim rsSource As DAO.Recordset
Dim rsTarget As DAO.Recordset
CurrentDb.Execute "DELETE * FROM tblWeekPlan"
Set rsTarget = CurrentDb.OpenRecordset("tblWeekPlan", dbOpenDynaset)
For i = 1 To 25
rsTarget.AddNew
rsTarget.Fields("iNum") = i
rsTarget.Update
Next

For i = 1 To 7
Set rsSource = CurrentDb.OpenRecordset("SELECT QryPrint.* FROM QryPrint WHERE DietCode =" & [DietID] & " AND DayCode =" & i & " ORDER BY [Type of Meal]")
If rsSource.RecordCount Then
If tmpMax < rsSource.RecordCount Then tmpMax = rsSource.RecordCount
rsSource.MoveFirst
rsTarget.MoveFirst
For x = 1 To rsSource.RecordCount
rsTarget.FindFirst "iNum=" & x
rsTarget.Edit
TheFood = Nz(DLookup("FoodName", "tblFoodAnalysis", "[FoodID]=" & rsSource.Fields("Food")))
rsTarget.Fields("MealCat") = Nz(rsSource.Fields("[Type of Meal]"), "")
rsTarget.Fields("d" & i) = TheFood & " - " & Nz(rsSource.Fields("Conc"), "")
rsTarget.Update
rsSource.MoveNext
Next
End If
Next
CurrentDb.Execute "DELETE * FROM tblWeekPlan WHERE iNum > " & tmpMax

kapetang 09-07-14 13:23

Καλησπέρα

Γιώργο, το λάθος μπορεί να οφείλεται:

1) Σε λανθασμένη αναγραφή των ονομάτων των πεδίων (DietCode, DietID) .

2) Στον τύπο δεδομένων των πεδίων.

Ο κώδικας που έγραψες ισχύει για αριθμητικά πεδία.

Αν τα πεδία είναι κειμένου θα πρέπει να αλλάξει στον:

DietCode ='" & [DietID] & "' AND DayCode =" ........

Αν είχες ανεβάσει ένα δείγμα της ΒΔ θα ήταν γνωστά και τα ονόματα των πεδίων και ο τύπος τους.

Αν δεν κάνω λάθος, για κάποιους λόγους (τους σέβομαι) αποφεύγεις το ανέβασμα δειγμάτων της δουλειάς σου.

Αυτό, όπως καταλαβαίνεις, αποτρέπει αρκετούς χρήστες να ασχοληθούν με το πρόβλημά σου και συνεπώς περιορίζει τις πιθανότητες βοήθειας.

Φιλικά/Γιώργος

γιώργοςΚ 09-07-14 14:23

Γιώργο μου σε χαιρετώ,

Σε ευχαριστώ πολύ για τις πληροφορίες. Όντως, και έχεις δίκιο στο θέμα του κώδικα που έγραψα. Τελικά η λύση ήταν αυτή που τυχαίως αναφέρεις και εσύ, δηλαδή το είδος του πεδίου ήταν text και όχι number..

Έλυσα τελικά το πρόβλημα διαμορφώνωντας τον κώδικα και είναι εντάξει (τουλάχιστον προκαταρτικά φαίνεται να δουλεύει).

Σε κάθε περίπτωση σε ευχαριστώ και πάλι.

Φιλικά


Η ώρα είναι 17:19.

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


Search Engine Optimization by vBSEO 3.3.2