| 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 στις 19: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 18:13 |
| [Συναρτήσεις] Πως κάνω εξαγωγή δεδομένων απο πίνακα; | koumpana | Excel - Ερωτήσεις / Απαντήσεις | 27 | 29-05-12 09:21 |
| [VBA] Login_SplashScreen σε excel πως μπορώ να το κάνω? | fotis | Excel - Ερωτήσεις / Απαντήσεις | 2 | 10-05-10 21:44 |
| Βοήθεια για να κανω ομορφη τη βαση μου | NIC | Access - Ερωτήσεις / Απαντήσεις | 8 | 29-08-09 12:38 |
Η ώρα είναι 00:37.


Υβριδικός τρόπος

