Προς το περιεχόμενο

προβλημα στην access


salonika

Προτεινόμενες αναρτήσεις

Δημοσ.

έχω αγκυλωθεί στην access και συγκεκριμένα σε έναν πίνακα με χιλιάδες εγγραφές.

Στις εγγραφές αυτές λοιπόν τις έχω μόνο στην ονομαστική(πτώση) και συγκεκριμένα Επώνυμο και όνομα.

στις φόρμες όμως μου χρειάζεται και η Αιτιατική πτώση π.χ. Κοσμάς Δελαπόρτας

 

ΠΡΟΣ:κ.Κοσμάς Δελαπόρτας (εγώ θέλω να μου βγαίνει η αιτιατική) ΠΡΟΣ:κ Κοσμά Δελαπόρτα

 

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

Δημοσ.

Θα τραβήξεις τις εγγραφές σου από ένα query και όχι κατευθείαν απο τον πίνακα.

 

Στο query αυτό θα βάλεις ένα πεδίο (υπολογιζόμενο) όπως παρακάτω:

 

------> OnomaAit: Left$([Onoma];Len([Onoma])-1)

 

Αυτό το πεδίο [OnomaAit] θα χρησιμοποιείς στην φόρμα ή το report σου.

 

Κάνεις το ίδιο και για το επώνυμο.

 

Το πρόβλημα είναι ότι η μετατροπή θα πρέπει να γίνεται μόνο σε άντρες που το όνομα ή το επώνυμο τους τελειώνει σε ς.

Πχ. Νίκος Βασιλείου το Νίκος θέλει αλλαγή αλλά το Βασιλείου όχι.

Στις γυναίκες π.χ. Ιωάννα Λάμπρου δεν θέλει καθόλου αλλαγή.

Δεν συζητάμε τι γίνεται αν υπάρχουν και ξενικά ονόματα....

 

Το καλύτερο θα ήταν να φτιάξεις καινούριο πεδίο στον πίνακα σου με Αιτιατικές και να χρησιμοποιείς αυτό. Μπορείς μάλιστα να κάνεις copy τα ονόματα σε ένα exelάκι να κάνεις την μετατροπή ποιο εύκολα και μετά να κάνεις paste από το exel στο καινούριο πεδίο με τις αιτιατικές.

 

Αυτά.

Κάτι ποιό εύκολο δεν βρίσκω αν και το ΠΡΟΣ: Κοσμάς Δελαπόρτας δεν μου χτυπάει και τόσο άσχημα.

Δημοσ.

Ωραία απάντηση δεν σου έδωσα…

 

1. Σου έδωσα κώδικα που δεν δουλεύει για όλες τις εγγραφές και κατά πάσα πιθανότητα δεν θα τον χρησιμοποιήσεις.

2. Σου πρότεινα να κάνεις αυτό που ήθελες να αποφύγεις δηλαδή να το κάνεις manual.

3. Τελικά σου είπα ότι και έτσι που το έχεις δεν είναι άσχημα οπότε άστο όπως είναι.

 

Αυτά τα προγράμματα της micro$oft έχουν αρχίσει να μου αλλοιώνουν τον χαρακτήρα….

:D

Δημοσ.
έχω αγκυλωθεί στην access και συγκεκριμένα σε έναν πίνακα με χιλιάδες εγγραφές.

Στις εγγραφές αυτές λοιπόν τις έχω μόνο στην ονομαστική(πτώση) και συγκεκριμένα Επώνυμο και όνομα.

στις φόρμες όμως μου χρειάζεται και η Αιτιατική πτώση π.χ. Κοσμάς Δελαπόρτας

 

ΠΡΟΣ:κ.Κοσμάς Δελαπόρτας (εγώ θέλω να μου βγαίνει η αιτιατική) ΠΡΟΣ:κ Κοσμά Δελαπόρτα

 

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

 

Αν και εχω πάψει να ασχολούμε με τέτοια προγραμματάκια :P (βλέπε access) στην Oracle θα ήταν

select substr(lastname,0,length(lastname) -1), substr(firstname,0,length(firstname) -1) from t_customers

 

stis gynaikes ti tha ekanes omws? opote ena pio efficient tha htan

 

select case

when substr(lastname,length(lastname),length(lastname)) = 'Σ'

then substr(lastname,0,length(lastname) -1)

else lastname

end

from t_customer

 

Αλλά πάντα υπάρχει η εύκολη λύση, οπότε ένα

select rtrim(lastname,'Σ') from t_customer

 

θα έκανε την δουλειά...

 

Τώρα στην access σίγουρα θα είναι πιό πολύπλοκα τα πράγματα....

φαντάζομαι όμως ένα query όπως το παρακάτω θα έκανε την δουλειά....

 

SELECT IIF(Right(LASTNAME,1)='Σ',LEFT(LASTNAME,LEN(LASTNAME)-1),LASTNAME)

FROM t_customers;

 

Αν έχεις lower case ονόματα κάνε και ένα ucase ή απλά βάλε όπου 'Σ' 'ς' και είσαι ωραίος :)

 

Φιλικά Craven

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...