Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Ερωτήματα ] Τι κάνω λάθος

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

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 19-04-15, 22:05
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 06-02-2010
Μηνύματα: 196
Προεπιλογή Τι κάνω λάθος

Καλησπέρα σε όλους και Χρίστος ανέστη
Στον παρακάτω κώδικα τι κανό λάθος και στο error μου εμφανίζει λίγοι παράμετροι αναμένεται μια.
Κώδικας:
Dim node
node = DLookup("struser", "tblEmployees", "lngEmpID=" & Form_frmLogon.cboEmployee)
Set Rst = CurrentDb.OpenRecordset("SELECT * FROM MenuNodesQuery WHERE node = TRUE")
Απάντηση με παράθεση
  #2  
Παλιά 20-04-15, 20:09
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 06-02-2010
Μηνύματα: 196
Προεπιλογή

Καμιά βοήθεια ……….!
Απάντηση με παράθεση
  #3  
Παλιά 20-04-15, 20:50
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Γιώργο τα στοιχεία που δίνεις είναι ανεπαρκή.

Δε μας λες σε ποια γραμμή του κώδικα παρουσιάζεται το λάθος, ούτε μας δίνεις τα ονόματα των πινάκων/ερωτημάτων μαζί με τα ονόματα και τον τύπο των πεδίων που εμπλέκονται στον κώδικα.

Στην τελευταία γραμμή του κώδικα το node τι είναι;

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #4  
Παλιά 20-04-15, 21:26
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 06-02-2010
Μηνύματα: 196
Προεπιλογή

Καλησπέρα Γιώργο
Στον παρακάτω κώδικα με το 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  
Παλιά 21-04-15, 17:29
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Γιώργο, αν κατάλαβα το λαβύρινθο που μου έστειλες, αυτό που θέλεις δε γίνεται:

1) Η γραμμή κώδικα:
node = DLookup("struser", "tblEmployees", "lngEmpID=" & Form_frmLogon.cboEmployee), θα δώσει στη μεταβλητή node μια τιμή από το πεδίο strUser (noteUser1 ή noteUsers).

2) Αλλά, επειδή στο ερώτημα MenuNodesQuery δεν υπάρχει πεδίο ανάλογο με το struser η παραπάνω τιμή της μεταβλητής node δεν μπορεί να χρησιμοποιηθεί στα κριτήρια, όταν ανοίγουμε το recordset Rst.

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #6  
Παλιά 21-04-15, 17:49
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 06-02-2010
Μηνύματα: 196
Προεπιλογή

Καλησπέρα σε όλους
Γιώργο παρόλο που άλλαξα τα πεδία σε noteUsers1 και noteUsers9 και πάλι δεν βλέπει το node στο ερώτημα.
Απάντηση με παράθεση
  #7  
Παλιά 21-04-15, 19:41
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Γιώργο, για να βάλουμε μια σειρά:

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  
Παλιά 21-04-15, 22:38
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 06-02-2010
Μηνύματα: 196
Προεπιλογή

Γιώργο σε ευχαριστώ πολύ.
Άλλαξα τα ονόματα στα πεδία του πινάκα 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  
Παλιά 22-04-15, 00:18
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Γιώργο ο κώδικας είναι σωστός.

Δες μια δοκιμή στη συνημμένη ΒΔ
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb TestApped.mdb (292,0 KB, 21 εμφανίσεις)
Απάντηση με παράθεση
  #10  
Παλιά 22-04-15, 15:36
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 06-02-2010
Μηνύματα: 196
Προεπιλογή

Το βρήκα
Και πάλι σε ευχαριστώ πολύ.
Κώδικας:
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
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός 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.