Solved

Adding record to a table from data entry in another unbound form

Posted on 2013-05-31
5
1,649 Views
Last Modified: 2013-06-20
Someone helped me a while back with an issue where I was trying to add a record to an unbound table from a field data entry in a form.  Here's my code but it's broken and I can't figure out why.

When I try to close the form I get an error..."Too few parameters.  Expected 1"

Here's my code...

Private Sub Form_Close()

    'Code to create a new record in tblExample with values from combobox if that combination of data doesn't already exist in the table
    If Me.cboProjectName > "" Then
        If DCount("*", "tblProjectNames", "ProjectName = " & Chr(34) & Me.cboProjectName & Chr(34)) > 0 Then
        'MsgBox "This record already exists."
        Else
            MsgBox "This appears to be a new record which does not already exist in the program.  A new record is being created."
        Dim RS As DAO.Recordset
        Set RS = CurrentDb.OpenRecordset("tblProjectNames")
            RS.AddNew
            RS!ProjectName = Me.cboProjectName
            RS.Update
        End If
    End If
    'End of code to create a new record in separate table with values from combobox if that record doesn't already exist in the table


End Sub
0
Comment
Question by:SteveL13
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 

Author Comment

by:SteveL13
ID: 39210858
Actually, here is what I am trying to accomplish.  I want the user to be able to type a value in a combobox and then be able to select that value for future records.  I guess I don't care if that value is entered into the unbound table.

What is the best method to accomplish this?
0
 
LVL 84
ID: 39211061
then be able to select that value for future records.
So you want to select a single value, and then use that value for other things (like searches, or something like that)?

If so, you can use a variable declared at the proper "scope". If this is all done on a Form, then just declare your variable in the General Declarations section of that Form's code module:

Public gMyVar As String

Then you can set that value as needed:

gMyVar = "Bob"

If you need greater scope, then you can use the hidden form technique, which has several advantages. To do that, create a form that contains several textboxs, and open that form when the database first opens (you can open it as Hidden to hide it from view). Once that's done, you can then set your values into those textboxes:

Forms("YourHiddenForm").SomeTextbox = "Bob"

To refer to that value from anywhere in your app, you'd do this:

Msgbox "The current user is " &  Forms("YourHiddenForm").SomeTextbox
0
 

Author Comment

by:SteveL13
ID: 39211340
No, I want to be able to either select an existing value OR type in a new value.  If I type a new value I want to add that value to the unbound table but my code is broken.
0
 
LVL 84

Accepted Solution

by:
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 500 total points
ID: 39211499
You can modify your code below:

Dim RS As DAO.Recordset
        Set RS = CurrentDb.OpenRecordset("tblProjectNames")
            RS.AddNew
            RS!ProjectName = Me.cboProjectName
            RS.Update
        End If

To this:

Currentproject.Connection.Execute "INSERT INTO tblProjectNames(ProjectName) VALUES('" & Me.cboProjectName & "')"

That will insert a new record into the table.
0
 

Author Comment

by:SteveL13
ID: 39211604
This is crazy!  For some reason the following code which I think is the last suggestion, is creating TWO records in tblProjectNames. One which is correct or what I would expect, but the 2nd record being created has the key number of the drop-down in the ProjectName field.

????????

Code:

Private Sub Form_Close()

    'Code to create a new record in tblExample with values from combobox if that combination of data doesn't already exist in the table
    If Me.cboProjectName > "" Then
        If DCount("*", "tblProjectNames", "ProjectName = " & Chr(34) & Me.cboProjectName & Chr(34)) > 0 Then
            'MsgBox "This record already exists."
            Else
            MsgBox "This appears to be a new record which does not already exist in the program.  A new record is being created."
            CurrentProject.Connection.Execute "INSERT INTO tblProjectNames(ProjectName) VALUES('" & Me.cboProjectName & "')"
        End If
    End If
    'End of code to create a new record in separate table with values from combobox if that record doesn't already exist in the table

End Sub
0

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question