Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Τι κάνω λάθος
Καλησπέρα σε όλους και Χρίστος ανέστη Στον παρακάτω κώδικα τι κανό λάθος και στο error μου εμφανίζει λίγοι παράμετροι αναμένεται μια. Κώδικας: Dim node node = DLookup("struser", "tblEmployees", "lngEmpID=" & Form_frmLogon.cboEmployee) Set Rst = CurrentDb.OpenRecordset("SELECT * FROM MenuNodesQuery WHERE node = TRUE") |
#2
| |||
| |||
Καμιά βοήθεια ……….!
|
#3
| |||
| |||
Καλησπέρα Γιώργο τα στοιχεία που δίνεις είναι ανεπαρκή. Δε μας λες σε ποια γραμμή του κώδικα παρουσιάζεται το λάθος, ούτε μας δίνεις τα ονόματα των πινάκων/ερωτημάτων μαζί με τα ονόματα και τον τύπο των πεδίων που εμπλέκονται στον κώδικα. Στην τελευταία γραμμή του κώδικα το node τι είναι; Φιλικά/Γιώργος |
#4
| |||
| |||
Καλησπέρα Γιώργο Στον παρακάτω κώδικα με το node αναζητάμε το όνομα του χρηστή και στο ερώτημα MenuNodesQuery του μενού μας εμφανίζει τα δικαιώματα του. Και αυτό για να αφαιρέσω την If Form_Frm_main.Usr = "1" Then και να έχω περισσότερες επιλογές. Θα ήθελα να ανεβάσω της βάσης αλλά η μια με τους πινάκες είναι 3,24 ΜΒ και η άλλη 10,1 ΜΒ και δεν γνωρίζω άλλο τρόπο για να την δείτε. Κώδικας: Sub AddNodes() '----------------- Dim myTree As Control Dim myImage As Control Dim db As DAO.Database Dim Rst As DAO.Recordset Dim strRelative As String Dim strKey As String Dim strText As String Dim strImage As String Dim strExpandedImage As String Dim node As Variant Set myTree = Me.TreeView1 Set myImage = Me.ImageList1 ' clear all nodes myTree.Nodes.Clear ' link Treeview object to Imagelist object myTree.ImageList = myImage.Object Set db = CurrentDb node = DLookup("struser", "tblEmployees", "lngEmpID=" & Form_frmLogon.cboEmployee) If Form_frmLogon.cboEmployee = "1" Then Set Rst = CurrentDb.OpenRecordset("SELECT * FROM MenuNodesQuery WHERE noteAdmin = TRUE") Else Set Rst = CurrentDb.OpenRecordset("SELECT * FROM MenuNodesQuery WHERE noteUsers = TRUE") End If With Rst If Not (.EOF And .BOF) Then Do Until .EOF If Len(Nz(.Fields("nodeParent"), "")) = 0 Then strKey = .Fields("nodeKey") strText = .Fields("nodeText") strImage = Nz(.Fields("nodePictureNormal"), "") myTree.Nodes.Add , , strKey, strText, strImage Else strRelative = .Fields("nodeParent") strKey = .Fields("nodeKey") strText = .Fields("nodeText") strImage = Nz(.Fields("nodePictureNormal"), "") strExpandedImage = Nz(.Fields("nodePictureExpanded"), "") 'assume the first 4 fields will always have a value, but 'strExpandedImage might have no value If strExpandedImage = "" Then myTree.Nodes.Add strRelative, tvwChild, strKey, strText, _ strImage Else myTree.Nodes.Add strRelative, tvwChild, strKey, strText, _ strImage, strExpandedImage End If 'set value of nodes.tag property, if it is used (Note: nodes.image 'and nodes.expandedImage properties only return values, and thus 'cannot be used this way to set the values.) If Len(.Fields("nodeTag") & "") > 0 Then myTree.Nodes(strKey).Tag = .Fields("nodeTag") End If End If .MoveNext Loop End If End With Rst.Close Set db = Nothing Set Rst = Nothing End Sub |
#5
| |||
| |||
Καλησπέρα Γιώργο, αν κατάλαβα το λαβύρινθο που μου έστειλες, αυτό που θέλεις δε γίνεται: 1) Η γραμμή κώδικα: node = DLookup("struser", "tblEmployees", "lngEmpID=" & Form_frmLogon.cboEmployee), θα δώσει στη μεταβλητή node μια τιμή από το πεδίο strUser (noteUser1 ή noteUsers). 2) Αλλά, επειδή στο ερώτημα MenuNodesQuery δεν υπάρχει πεδίο ανάλογο με το struser η παραπάνω τιμή της μεταβλητής node δεν μπορεί να χρησιμοποιηθεί στα κριτήρια, όταν ανοίγουμε το recordset Rst. Φιλικά/Γιώργος |
#6
| |||
| |||
Καλησπέρα σε όλους Γιώργο παρόλο που άλλαξα τα πεδία σε noteUsers1 και noteUsers9 και πάλι δεν βλέπει το node στο ερώτημα. |
#7
| |||
| |||
Καλησπέρα Γιώργο, για να βάλουμε μια σειρά: 1) Οι τιμές που θα παίρνει το πεδίο strUser στον πίνακα tblEmployees θα πρέπει να είναι πεδία τύπου yes/Νο στον πίνακα MenuNodes και στο αντίστοιχο ερώτημα MenuNodesQuery. Τονίζω ιδιαίτερα ότι τα ονόματα των πεδίων yes/No θα πρέπει να ταυτίζονται με τις τιμές του πεδίου strUser. 2) Αφού γίνουν οι παραπάνω αλλαγές θα μπορούσες να ανοίξεις το recordset με την πρόταση: Set Rst = CurrentDb.OpenRecordset("SELECT * FROM MenuNodesQuery WHERE [" & node & "] =-1") Φιλικά/Γιώργος Τελευταία επεξεργασία από το χρήστη kapetang : 21-04-15 στις 20:19. Αιτία: Βελτίωση πρότασης Set |
#8
| |||
| |||
Γιώργο σε ευχαριστώ πολύ. Άλλαξα τα ονόματα στα πεδία του πινάκα MenuNodes σε noteUsers" & Me.lngEmpID και στην MenuNodesQuery και με την προσθήκη " & node & " δουλεύει άψογα. Έχω ακόμη μια ερώτηση με τιs παρακάτω γραμμές κανό προσθήκη μια στήλη κάθε φορά που εγγράφετε ένας χριστείς αλλά δεν είναι Yes/no. Κώδικας: Set db = CurrentDb() Set tdf = db.TableDefs("MenuNodes") Set fld = tdf.CreateField("noteUsers" & Me.lngEmpID, dbBoolean) fld.DefaultValue = True tdf.Fields.Append fld |
#9
| |||
| |||
Γιώργο ο κώδικας είναι σωστός. Δες μια δοκιμή στη συνημμένη ΒΔ |
#10
| |||
| |||
Το βρήκα Και πάλι σε ευχαριστώ πολύ. Κώδικας: Dim dbs As Object Dim tdf As TableDef Dim p As Property Set dbs = CurrentDb Set tdf = dbs.TableDefs("MenuNodes") tdf.Fields.Append tdf.CreateField("noteUsers" & Me.txtInt, dbBoolean) Set p = tdf.Fields("noteUsers" & Me.txtInt).CreateProperty("DisplayControl", dbInteger, 106) tdf.Fields("noteUsers" & Me.txtInt).Properties.Append p |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Γενικά] Πως μπορώ να κάνω ένα μαζικό copy-paste; | PeterG | Excel - Ερωτήσεις / Απαντήσεις | 2 | 03-10-13 19:13 |
[Συναρτήσεις] Πως κάνω εξαγωγή δεδομένων απο πίνακα; | koumpana | Excel - Ερωτήσεις / Απαντήσεις | 27 | 29-05-12 10:21 |
[VBA] Login_SplashScreen σε excel πως μπορώ να το κάνω? | fotis | Excel - Ερωτήσεις / Απαντήσεις | 2 | 10-05-10 22:44 |
Βοήθεια για να κανω ομορφη τη βαση μου | NIC | Access - Ερωτήσεις / Απαντήσεις | 8 | 29-08-09 13:38 |
Η ώρα είναι 21:15.