Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Πρόβλημα με κώδικα σε πεδίο

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Κλειστό Θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 22-04-15, 13:57
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή Πρόβλημα με κώδικα σε πεδίο

Καλησπέρα στην παρέα,

Προσπαθώ να δημιουργήσω την υποδομή έτσι ώστε να μπορώ να αντιγράφω τα δεδομένα απο ένα Record σε ένα νέο, και αντιμετωπίζω πρόβλημα με το πεδίο [Notes] επειδή το format του είναι Memo.
Σημειώστε ότι ο κώδικας και η όλη διαδικασία δουλεύει εάν ακυρώσω την γραμμή κώδικα που αφορά το συγκεκριμένο πεδίο

Παραθέτω αυτούσιο τον κώδικα έτσι ώστε να μπορέσω να γίνω πιο κατανοητός:

Private Sub cmdDublicateRec_Click()
On Error GoTo Err_cmdDublicateRec_Click

Dim lngID As Long, dbs As DAO.Database
Dim lngDietType As Long
Dim lngNewDietID As Long
Dim lngBreakfastMeals As Long
Dim lngSnack1Meals As Long
Dim lngLunchMeals As Long
Dim lngSnack2Meals As Long
Dim lngDinnerMeals As Long
Dim lngNightMeals As Long
Dim lngBefSleepMeals As Long
Dim lngNotes As Long (εδώ είναι το πρόβλημα διότι πιστεύω πως δεν πρέπει να έχω As Long αλλά κάτι άλλο εφόσον το πεδίο αυτό είναι Memo)

If Not Me.NewRecord Then
lngID = Me.DietID
lngDietType = Me.DietType
lngBreakfastMeals = Me.BreakfastMeals
lngSnack1Meals = Me.Snack1Meals
lngLunchMeals = Me.LunchMeals
lngSnack2Meals = Me.Snack2Meals
lngDinnerMeals = Me.DinnerMeals
lngNightMeals = Me.NightMeals
lngBefSleepMeals = Me.BefSleepMeals
lngNotes = Me.Notes

Set dbs = CurrentDb
With Me.RecordsetClone
.AddNew
![Customer No] = Me.txtCustomer
!DietType = lngDietType
!BreakfastMeals = lngBreakfastMeals
!Snack1Meals = lngSnack1Meals
!LunchMeals = lngLunchMeals
!Snack2Meals = lngSnack2Meals
!DinnerMeals = lngDinnerMeals
!NightMeals = lngNightMeals
!BefSleepMeals = lngBefSleepMeals
!Notes = lngNotes

lngNewDietID = !DietID
.Update
.FindFirst ("DietID=" & lngNewDietID)
If Not .NoMatch Then Me.Bookmark = .Bookmark
End With

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

Φιλικά
  #2  
Παλιά 23-04-15, 09:25
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

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

Γιώργο, θα σου πρότεινα να δημιουργήσεις μια νέα ΒΔ.

Να προσθέσεις τη φόρμα με τον προβληματικό κώδικα και τα εντελώς απαραίτητα (πίνακες, ερωτήματα) για τη σωστή λειτουργία της φόρμας και να την ανεβάσεις στο φόρουμ.

Έτσι θα διευκόλυνες όσους θέλουν να βοηθήσουν και πιθανόν να έλυνες το πρόβλημά σου.

Φιλικά/Γιώργος
  #3  
Παλιά 23-04-15, 10:02
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Καλημέρα, Χρόνια σου Πολλά Γιώργο μου....πάντα γερός..!!

Γιώργο έχεις δίκιο στην αναφορά σου περί Upload μιας βάσης που να περιλαμβάνει όλα τα σχετικά αλλά αρκετα δύσκολο έως ανέφικτο εξαιτίας ότι για να μπορεί κάποιος να δουλέψει με το σχετικό κομμάτι του σημείου που είναι ενσωματωμένος ο κώδικας, πρέπει δυστυχώς να "ξεσηκωσω" πάνω απο την μισή βάση...

Θα με βοηθούσε έστω μια διαφώτηση στο εξής;

1. εάν πεδίο είναι Memo τι βαζουμε στο .......As......? (πχ As Long - Byte - ??)
2. Εάν μπορώ ίσως να ανατρέξω σε κάποιο βιβλίο - ιστοσελίδα ή οτιδήποτε επιμορφωτικό υλικό έτσι ώστε να πάρω και να μελετήσω την πιο πάνω απορία..

Σε ευχαριστώ για το ενδιαφέρον Γιώργο, συνήθως όταν και εφόσον χρειάζομαι κάποια βοήθεια φροντίζω και ανεβάζω κάποιο "παράδειγμα - βάση" έτσι ώστε να μπορεί κάποιος να αντιληφθεί τι χρειάζομαι. Δυστυχώς στην προκυμένη περίπτωση είναι σχεδόν αδύνατο να γίνει κάτι ανάλογο φίλε..

Ευχαριστώ
  #4  
Παλιά 23-04-15, 10:10
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Καλημέρα
Εντελώς τυχαία, διάβασα το ζητούμενό σου.
Επειδή το Note, είναι δεσμευμένη λέξη, (keyword) θα ήταν καλό, να αλλάξεις με κάτι παρόμοιο, πχ Info
Κάνε και το memo as String
Δοκίμασε τον κώδικα, μήπως και γλυτώσεις τις φασαρίες.
Χωρίς να γνωρίζω το έργο σου, αν οι μεταβλητές (γενικά) είναι αριθμητικά πεδία, ακέραιοι,
και έχουν να κάνουν με ποσότητες γευμάτων (από την ονομασία) ίσως και το Long είναι υπερβολικό.
Επιφυλάσσομαι της απάντησής μου, επειδή δεν γνωρίζω όπως είπα το έργο σου.
  #5  
Παλιά 23-04-15, 11:56
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Γειά σου Σπύρο και ευχαριστώ για την βοήθεια,

Ωστόσο, έχω τροποποιήσει τον κώδικα όπως εισηγείσαι αλλά εντούτις λαμβάνω error msg (το οποίο επισυνάπτω). Έχω δηλαδή κάνει το πιο κάτω:

Private Sub cmdDublicateRec_Click()
On Error GoTo Err_cmdDublicateRec_Click

Dim lngID As Long, dbs As DAO.Database
Dim lngDietType As Long
Dim lngNewDietID As Long
Dim lngBreakfastMeals As Long
Dim lngSnack1Meals As Long
Dim lngLunchMeals As Long
Dim lngSnack2Meals As Long
Dim lngDinnerMeals As Long
Dim lngNightMeals As Long
Dim lngBefSleepMeals As Long

Dim lngDietCalories As Single
Dim lngCarbs As Single
Dim lngProtein As Single
Dim lngFat As Single
Dim IngInfo As String

Dim lngbrTime As Single
Dim lngbrTimeÔï As Single
Dim lngBrSnTime As Single
Dim lngBrSnTimeÔï As Single
Dim lngLunTime As Single
Dim lngLunTimeÔï As Single
Dim lngAftTime As Single
Dim lngAftTimeÔï As Single
Dim lngDinTime As Single
Dim lngDinTimeÔï As Single
Dim lngNightTime As Single
Dim lngNightTimeÔï As Single
Dim lngDrnkTime As Single
Dim lngDrnkTimeÔï As Single


If Not Me.NewRecord Then
lngID = Me.DietID
lngDietType = Me.DietType
lngBreakfastMeals = Me.BreakfastMeals
lngSnack1Meals = Me.Snack1Meals
lngLunchMeals = Me.LunchMeals
lngSnack2Meals = Me.Snack2Meals
lngDinnerMeals = Me.DinnerMeals
lngNightMeals = Me.NightMeals
lngBefSleepMeals = Me.BefSleepMeals

lngbrTime = Me.brTime
lngbrTimeÔï = Me.brTimeÔï
lngBrSnTime = Me.BrSnTime
lngBrSnTimeÔï = Me.BrSnTimeÔï
lngLunTime = Me.LunTime
lngLunTimeÔï = Me.LunTimeÔï
lngAftTime = Me.AftTime
lngAftTimeÔï = Me.AftTimeÔï
lngDinTime = Me.DinTime
lngDinTimeÔï = Me.DinTimeÔï
lngNightTime = Me.NightTime
lngNightTimeÔï = Me.NightTimeÔï
lngDrnkTime = Me.DrnkTime
lngDrnkTimeÔï = Me.DrnkTimeÔï

lngDietCalories = Me.DietCalories
lngCarbs = Me.pCarbs
lngProtein = Me.pProtein
lngFat = Me.pFat
IngInfo = Me.Notes

Set dbs = CurrentDb
With Me.RecordsetClone
.AddNew
![Customer No] = Me.txtCustomer
!DietType = lngDietType
!BreakfastMeals = lngBreakfastMeals
!Snack1Meals = lngSnack1Meals
!LunchMeals = lngLunchMeals
!Snack2Meals = lngSnack2Meals
!DinnerMeals = lngDinnerMeals
!NightMeals = lngNightMeals
!BefSleepMeals = lngBefSleepMeals

!brTime = lngbrTime
!brTimeÔï = lngbrTimeÔï
!BrSnTime = lngBrSnTime
!BrSnTimeÔï = lngBrSnTimeÔï
!LunTime = lngLunTime
!LunTimeÔï = lngLunTimeÔï
!AftTime = lngAftTime
!AftTimeÔï = lngAftTimeÔï
!DinTime = lngDinTime
!DinTimeÔï = lngDinTimeÔï
!NightTime = lngNightTime
!NightTimeÔï = lngNightTimeÔï
!DrnkTime = lngDrnkTime
!DrnkTimeÔï = lngDrnkTimeÔï

!DietCalories = lngDietCalories
!pCarbs = lngCarbs
!pProtein = lngProtein
!pFat = lngFat
!Notes = IngInfo

lngNewDietID = !DietID
.Update
.FindFirst ("DietID=" & lngNewDietID)
If Not .NoMatch Then Me.Bookmark = .Bookmark
End With


Κάθε βοήθεια είναι σημαντική.

Ευχαριστώ πολύ
Συνημμένα Thumbnails
Πρόβλημα με κώδικα σε πεδίο-errror-copy-msg.png  
  #6  
Παλιά 23-04-15, 14:07
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Σπύρο χαιρετώ και πάλι,

Στην προσπάθεια μου να βρώ λύση στον κώδικα, εντόπισα οτι η βάση μου δυστυχώς για κάποιο λόγο έγινε corrupt και έτσιμ αφενώς μέν 1) άνοιξα μια νέα access 2) έριξα όλα τα αντικείμενα μέσα 3) προσάρμωσα τον κώδικα όπως ακριβώς μου έχεις εισηγηθεί.....και φυσικά ΔΟΥΛΕΥΕΙ μια χαρά..!!

Φίλε μπορεί εντελώς τυχαία να είδες την ανάρτηση μου αλλά μάλλον θεόσταλτος θα ήσουν..! Σε ευχαριστώ άλλη μια φορά.

Καλή συνέχεια
  #7  
Παλιά 23-04-15, 14:39
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Εκείνο που δεν κατάλαβα στον κώδικά σου (γι' αυτό ζήτησα και το δείγμα) είναι γιατί δεν θέτεις κατευθείαν τις τιμές των πεδίων του πίνακα ίσες με τις τιμές των πεδίων της φόρμας.

Έτσι ο κώδικας θα περιορίζονταν στο μισό και οι μεταβλητές που σου δημιοργούν το πρόβλημα δε θα χρειάζονταν.
  #8  
Παλιά 23-04-15, 19:11
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Καλησπέρα Γιώργο και σε όλη την παρέα

Γιώργο οι γνώσεις μου είναι πολύ περιορισμένες σε vba, αν θές και έχεις την καλοσύνη μπορείς να μου δείξεις στον κώδικα μου τί ακριβώς εννοείστ

Νάσαι καλά
  #9  
Παλιά 23-04-15, 21:16
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Αντί:
lngDietType = Me.DietType
!DietType = lngDietType

Θα μπορούσες να γράψεις (είνα απλά μαθηματικά):
!DietType = Me.DietType

Έτσι θα καταργούσες την εντολή lngDietType = Me.DietType και τη δήλωση της μεταβλητής lngDietType, δηλαδή το μεγαλύτερο μέρος του κώδικα.
  #10  
Παλιά 24-04-15, 17:49
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Γιώργο γειά σου,

Δηλαδή να μπορούσε ο κώδικας να δουλέψει έτσι?

Private Sub cmdDublicateRec_Click()
On Error GoTo Err_cmdDublicateRec_Clicκ

Set dbs = CurrentDb
With Me.RecordsetClone
.AddNew
![Customer No] = Me.txtCustomer
!DietType = lngDietType
!BreakfastMeals = lngBreakfastMeals
!Snack1Meals = lngSnack1Meals
!LunchMeals = lngLunchMeals
!Snack2Meals = lngSnack2Meals
!DinnerMeals = lngDinnerMeals
!NightMeals = lngNightMeals
!BefSleepMeals = lngBefSleepMeals

!brTime = brTime
!brTimeÔï = brTimeÔï
!BrSnTime = BrSnTime
!BrSnTimeÔï = BrSnTimeÔï
!LunTime = LunTime
!LunTimeÔï = LunTimeÔï
!AftTime = AftTime
!AftTimeÔï = AftTimeÔï
!DinTime = DinTime
!DinTimeÔï = DinTimeÔï
!NightTime = NightTime
!NightTimeÔï =NightTimeÔï
!DrnkTime = DrnkTime
!DrnkTimeÔï = DrnkTimeÔï

!DietCalories = DietCalories
!pCarbs = Carbs
!pProtein = Protein
!pFat = Fat
!Notes = Info

lngNewDietID = !DietID
.Update
.FindFirst ("DietID=" & lngNewDietID)
If Not .NoMatch Then Me.Bookmark = .Bookmark
End With

Φιλικά,
Κλειστό Θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[VBA] Πρόβλημα σε κώδικα xristos Excel - Ερωτήσεις / Απαντήσεις 5 16-03-16 17:43
Πρόβλημα σε κώδικα vba ΑΛΕΞΙΑ Access - Ερωτήσεις / Απαντήσεις 1 12-10-15 16:05
[ Συναρτήσεις ] ΠΡΟΒΛΗΜΑ ΚΩΔΙΚΑ ΣΕ ΑΝΑΖΗΤΗΣΗ artchrist73 Access - Ερωτήσεις / Απαντήσεις 2 16-10-14 22:44
Πρόβλημα με κώδικα VBA γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 17 08-10-14 16:04
Πρόβλημα σε κώδικα jimrenoir Access - Ερωτήσεις / Απαντήσεις 2 10-05-11 14:50


Η ώρα είναι 00:32.