ctl.Locked property error through VBA code.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ljstern
    New Member
    • Dec 2007
    • 5

    ctl.Locked property error through VBA code.

    Hello. I am using MS Access 2003 with XP/pro. I have a form that has the following properties set through the property sheet:

    form: AllowAdditions = False
    CartridgeID field: Locked = True

    The AllowAdditions property is set so that the user can navigate through the records but not be able to begin a new record without clicking the New Record button. The ID field is locked so the user cannot change that field, while still being able to update/edit the rest of the record.

    When the user clicks on the New Record button, I want the AllowAdditions property set to True and the Locked property for the ID field set to False.

    I have tried this two ways through VBA code:

    Code:
    '1:
    Me.AllowAdditions = True
    Me.DataEntry = True
    Me!CartridgeID.Locked = False
    
    '2:
    Me.AllowAdditions = True
    DoCmd.GoToRecord , , acNewRec
    Me!CartridgeID.Locked = False
    According to the Access help file and the Access website, either of these should work. However, I am getting the following error message every time it hits the Me!CartridgeID. Locked = False line of code:

    "Run time error 438: Object doesn't support this property or method."

    I am using the exact same syntax as is displayed in the examples from the help files and I do not understand why I am getting this error.

    Any assistance you can provide will be greatly appreciated.
  • missinglinq
    Recognized Expert Specialist
    • Nov 2006
    • 3533

    #2
    First off, I'd trash the first code. DataEntry = True causes Access to create an empty recordset, and since you already have a recordset open based on your table or query, I wouldn't open a second one.

    I'm guessing that CartridgeID is a required field, and maybe Access is balking because when a new record is invoked, it's locked. First thing I'd try is to place the unlocking code before going to a new record, and see if that solves the problem. Access is notorious for not actually hiliting the line causing the problem; it often hilites the immediately preceding line instead.
    Code:
      Me.AllowAdditions = True
      Me!CartridgeID.Locked = False
     DoCmd.GoToRecord , , acNewRec
    Welcome to TheScripts!

    Linq ;0)>

    Comment

    • ljstern
      New Member
      • Dec 2007
      • 5

      #3
      Thank you very much!

      Comment

      • missinglinq
        Recognized Expert Specialist
        • Nov 2006
        • 3533

        #4
        So that solved your problem?

        Linw ;0)>

        Comment

        • ADezii
          Recognized Expert Expert
          • Apr 2006
          • 8834

          #5
          Originally posted by ljstern
          Hello. I am using MS Access 2003 with XP/pro. I have a form that has the following properties set through the property sheet:

          form: AllowAdditions = False
          CartridgeID field: Locked = True

          The AllowAdditions property is set so that the user can navigate through the records but not be able to begin a new record without clicking the New Record button. The ID field is locked so the user cannot change that field, while still being able to update/edit the rest of the record.

          When the user clicks on the New Record button, I want the AllowAdditions property set to True and the Locked property for the ID field set to False.

          I have tried this two ways through VBA code:

          Code:
          '1:
          Me.AllowAdditions = True
          Me.DataEntry = True
          Me!CartridgeID.Locked = False
          
          '2:
          Me.AllowAdditions = True
          DoCmd.GoToRecord , , acNewRec
          Me!CartridgeID.Locked = False
          According to the Access help file and the Access website, either of these should work. However, I am getting the following error message every time it hits the Me!CartridgeID. Locked = False line of code:

          "Run time error 438: Object doesn't support this property or method."

          I am using the exact same syntax as is displayed in the examples from the help files and I do not understand why I am getting this error.

          Any assistance you can provide will be greatly appreciated.
          1. As linq has suggested, get rid of the DataEntry = True line in the first block of code.
          2. As I see it, there is absolutely no reason why the second block of code should not work, even if [CartridgeID] is required, unless [CartridgeID] refers to a Control that does not support the Locked Property such as a Label. Can this possibly be the case?

          Comment

          • missinglinq
            Recognized Expert Specialist
            • Nov 2006
            • 3533

            #6
            That was the first thing that crossed my mind, too, ADezii, but the line

            "The ID field is locked so the user cannot change that field"

            made me assume that it was indeed, a textbox. Of course, stranger things have happened!

            Linq ;0)>

            Comment

            • ADezii
              Recognized Expert Expert
              • Apr 2006
              • 8834

              #7
              Originally posted by missinglinq
              That was the first thing that crossed my mind, too, ADezii, but the line

              "The ID field is locked so the user cannot change that field"

              made me assume that it was indeed, a textbox. Of course, stranger things have happened!

              Linq ;0)>
              In this business that seems to be the norm (LOL)!

              Comment

              Working...