Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Argument not optional
Kαλημερα.Εχω το συκεκριμενο error.Δεν μπορεσα να βρω καποια ακρη ομως για να το λυσω Public Function MakeNameFolder(ByVal sEpitheto As String, ByVal sOnoma As String) As String Dim strname As String If dir(strParentFolder, vbDirectory) = "" Then MkDir strParentFolder End If If Len(sOnoma) * Len(sEpitheto) Then strname = Replace(sOnoma, " ", "_") & "_" & _ Replace(sEpitheto, " ", "_") End If MakeNameFolder = strParentFolder & strname End Function Function FileExist(FileFullPath As String) As Boolean Dim value As Boolean value = False If dir(FileFullPath) <> "" Then value = True End If FileExist = value End Function Function pdfSave() As String Dim fileName As String, fldrPath As String, filePath As String Dim answer As Integer Dim strFolder As String Dim strNewFolder As String strNewFolder = MakeNameFolder 'το error ειναι εδω strFolder = MakeNameFolder On Error GoTo err_Hander fileName = "Αίθουσα_Τοκετών" & "_" & Format(date, "dd-mm-yyyy") filePath = MakeNameFolder & "\" & fileName & ".pdf" If MakeNameFolder <> "" Then If dir(MakeNameFolder, vbDirectory) = "" Then MkDir MakeNameFolder MsgBox "Δημιουργήθηκε φάκελος" & vbCrLf & strParentFolder, vbOKOnly + vbInformation, "Φάκελος Ειδικευόμενου" End If If FileExist(filePath) Then answer = MsgBox("Tο αρχείο υπάρχει ήδη" & vbNewLine & filePath & vbNewLine & vbNewLine & _ "Να γίνει αντικατάσταση;", vbYesNo + vbInformation, "Αντικατάσταση") If answer = vbNo Then Exit Function Else DoCmd.OutputTo acReport, "Αίθουσα_Τοκετών", acFormatPDF, filePath MsgBox "Το αρχείο αντικαταστάθηκε στον φάκελο " & vbCrLf & filePath, vbOKOnly + vbInformation, "Αποθήκευση αναφοράς" Shell "EXPLORER.EXE" & " " & Chr(34) & strFolder & Chr(34), vbNormalFocus End If Else DoCmd.OutputTo acReport, "Αίθουσα_Τοκετών", acFormatPDF, filePath MsgBox "Το αρχείο αποθηκεύτηκε στον φάκελο " & vbCrLf & filePath, vbOKOnly + vbInformation, "Αποθήκευση αναφοράς" Shell "EXPLORER.EXE" & " " & Chr(34) & strFolder & Chr(34), vbNormalFocus End If End If Exit Function err_Hander: MsgBox "Error #" & Err.Number & vbCrLf & Err.Description End Function |
#2
| ||||
| ||||
Γιάννη, το καλό είναι ότι σου δίνεται η πληροφορία του σφάλματος με νούμερο και περιγραφή. Argument not optional: Σημαίνει ότι σε κάποιο σημείο του κώδικα καλείται κάποια συνάρτηση ή εντολή χωρίς να της έχουν δοθεί ένα ή περισσότερα απαραίτητα ορίσματα. Δες εδώ:https://docs.microsoft.com/en-us/dot...t-not-optional Στο παράδειγμα σου καλείς strNewFolder = MakeNameFolder όπου πολύ σωστά προκαλείται σφάλμα αφού η συνάρτηση: MakeNameFolder(ByVal sEpitheto As String, ByVal sOnoma As String) απαιτεί 2 ορίσματα. Θα πρέπει λοιπόν να γράψεις: strNewFolder =MakeNameFolder("Το επίθετο","Το όνομα") Φυσικά αντί για "Το επίθετο","Το όνομα" θα δώσεις 2 μεταβλητές πχ. Lastname, Firstname Καλή συνέχεια!
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#3
| |||
| |||
ok Τασο θα το κοιταξω.Ναι ειχα καταλαβει οτι θελει ορισματα αλλα δεν ηξερα τι να βαλω.πχ τωρα εβαλα strNewFolder =MakeNameFolder("Epitheto","onoma") Aπλα δεν καταλαβα πως θα λειτουργησει ολο αυτο οπως μου απαντησες και στο αλλο ποστ Τον παρακάτω κώδικα (Function) μπορείς να τον βάλεις στο ίδιο Module: Public Function MakeNameFolder(ByVal sEpitheto As String, ByVal sOnoma As String) As String Const strParentFolder As String = "C:\test" Dim strname As String If Dir(strParentFolder, vbDirectory) = "" Then MkDir strParentFolder End If If Len(sOnoma) * Len(sEpitheto) Then strname = Replace(sOnoma, " ", "_") & "_" & _ Replace(sEpitheto, " ", "_") End If MakeNameFolder = strParentFolder & strname End Function Αντικατέστησε των κώδικα που έχεις στην αναφορά με:"θα το βαλω σε event load_form" str=MakeNameFolder(Me.ΕΠΙΘΕΤΟ, Me.ΟΝΟΜΑ) Σε ευχαριστω |
#4
| ||||
| ||||
Δεν χρειάζεται αφού είναι Public που σημαίνει ότι είναι προσβάσιμος από οπουδήποτε, ακόμα και από άλλα, "ξένα" προγράμματα. Αυτό θα το διαπιστώσεις όταν πληκτρολογήσεις str=MakeNameFolder( και θα σου ανοίξει το popup με τα ορίσματα.
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#5
| |||
| |||
Καλημερα.Τασο επειδη δεν μου βγαινει.Οπως θα δεις στην βαση που αναβαζω στην ουσια θελω ,αφου ανοιξω μια αναφορα και κανω δεξι κλικ-εξαγωγη σε pdf,να αποθηκευεται σε συγκεκριμενη τοποθεσια που εχω δηλωσει (αυτο λειτουργει πχ c:\test) αλλα και να φτιαχνει ταυτοχρονα φακελο με το ονομα και το επιθετο (πχ c:\test\ονομα_επιθετο\) Και τελος αν γινεται να παιρβνει δυναμικα και να αποθηκευεται η εκαστοτε αναφορα με το ονομα της (πχ c:\test\ονομα_επιθετο\ονομα_αν φορας\) |
#6
| ||||
| ||||
Φίλε μου Γιάννη, θα πρέπει να μελετήσεις λίγο παραπάνω την Access και την VBA για να μπορείς να διαχειριστείς τις απαντήσεις που υπάρχουν σε αφθονία και στο φόρουμ αυτό αλλά και στο Internet γενικότερα. Θα σου κοστίσει λιγότερο χρόνο να μελετήσεις και να μάθεις από το να προσπαθείς να πειραματίζεσαι πάνω σε άγνωστα αντικείμενα που δεν έχεις μάθει ακόμα. Σου επισυνάπτω ένα αρχείο/παράδειγμα που πιστεύω ότι θα σε βοηθήσει να συνεχίσεις. Καλή συνέχεια! Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#7
| |||
| |||
Καλημερα Τασο.Εχω διαβασει αρκετα νηματα οσο αφορα την access.Παντως οπως και να χει σε ευχαριστω για την βοηθεια |
#8
| ||||
| ||||
Γιάννη να είσαι καλά! Δεν θέλω να εκλάβεις την προτροπή μου ως παρατήρηση ή κριτική. Δεν είμαι εδώ για να κρίνω ούτε εγώ ούτε κανένας από την παρέα μας. Η θεωρία "περισσότερη μελέτη" που ανέφερα στο προηγούμενο μου μήνυμα είναι εμπειρία μιας εικοσαετίας στο χώρο και είναι κάτι που εγώ προσωπικά εφαρμόζω και θα εφαρμόζω για πάντα. Αυτό βεβαίως δεν είναι πάντα εφικτό. Πρέπει να υπάρχουν και οι κατάλληλες προϋποθέσεις όπως χρόνος, καθαρό μυαλό (μακριά από έγνοιες κλπ.) ώστε να μπορεί κανείς να συγκεντρωθεί και να αποδώσει. Καλή συνέχεια! Με εκτίμηση Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Η ώρα είναι 08:09.