Prev: Lookup...
Next: Data Entry
From: Steve Muir on
Bit of a "noob" question but here goes....

I am using an unbound form for data entry purposes. I am using an unbound
form as I have some VBA code which checks that mandatory fields are filled in
first.

This works fine where all the fields are text boxes (i.e. not combos or list
boxes)
but the problem I'm having is that the parent table "tblContracts" has 4
lookup tables (which are used for combos with various fields on the form) and
these are numeric fields which link between the tables (i.e. In the parent
table the field would be SupplierID whick links to the child table SupplierID
field) In the form obviously it displays the actual name rather than the
index numerical value when the user clicks the dropdown menu. The issue (I
think?) is that the VBA code I have is trying to insert a numerical value
(The ID field value) rather than the text which is displayed in the dropdown
menu. How can I get round this??

Apologies if this seems really simple but I have limited VBA coding
experience. The

PS - VBA code to insert data to the table works perfectly if the table has
no lookup values in the combo boxes.

These ar

When I click the command button to insert the data from the form into the
table
From: Al Campagna on
Steve,
Given cboSupplierID with SupplierID in the first column, and
SupplierName in the second column.
Setup your combobox like this...
No Of Columns = 2
Column Widths = 0" ; 1.5"

This allows the user to only see the SupplierName, select a
SupplierName, but
set the value of cboSuppplierID to the SupplierID. I think that's what you
want...
(usually, the cboSupplierID would be "bound" to your SupplierID table
field)

On my website (below) I have a sample A97 and A2003 zip file named
Combo Quick Find, which demonstrates the above method.
--
hth
Al Campagna
Microsoft Access MVP 2006-2009
http://home.comcast.net/~cccsolutions/index.html

"Find a job that you love... and you'll never work a day in your life."

"Steve Muir" <SteveMuir(a)discussions.microsoft.com> wrote in message
news:2FDDB0F7-8FA7-4594-B8AD-E157FE48A45F(a)microsoft.com...
> Bit of a "noob" question but here goes....
>
> I am using an unbound form for data entry purposes. I am using an unbound
> form as I have some VBA code which checks that mandatory fields are filled
> in
> first.
>
> This works fine where all the fields are text boxes (i.e. not combos or
> list
> boxes)
> but the problem I'm having is that the parent table "tblContracts" has 4
> lookup tables (which are used for combos with various fields on the form)
> and
> these are numeric fields which link between the tables (i.e. In the parent
> table the field would be SupplierID whick links to the child table
> SupplierID
> field) In the form obviously it displays the actual name rather than the
> index numerical value when the user clicks the dropdown menu. The issue
> (I
> think?) is that the VBA code I have is trying to insert a numerical value
> (The ID field value) rather than the text which is displayed in the
> dropdown
> menu. How can I get round this??
>
> Apologies if this seems really simple but I have limited VBA coding
> experience. The
>
> PS - VBA code to insert data to the table works perfectly if the table has
> no lookup values in the combo boxes.
>
> These ar
>
> When I click the command button to insert the data from the form into the
> table


From: Steve Muir on
Hi,

Thanks for the quick response but it's not quite what I'm after. After
reading my post I did not explain myself very well at all!!

I have the combobox rowsource set up to SELECT DISTINCT Suppliername from
tblSupplier (to give the user a list of current supplier names to select
from) And I have the number of columns etc exactly as you suggested. The
problem comes when the VBA code tries to insert the data on the form fields
into the Contracts table (Parent Table). The "actual" value (as seen on the
form) is the Supplier Name (not the corresponding SupplierID (PK)) But when
the code tries to insert the data into the parent table (tblContracts) it is
trying to insert the Text value from the textbox, rather than the SupplierID
numerical value needed for the numerical field value in tblContracts (the
parent table)

Hope this makes sense, I might be better off attaching the form itself to
illustrate what I mean.


"Al Campagna" wrote:

> Steve,
> Given cboSupplierID with SupplierID in the first column, and
> SupplierName in the second column.
> Setup your combobox like this...
> No Of Columns = 2
> Column Widths = 0" ; 1.5"
>
> This allows the user to only see the SupplierName, select a
> SupplierName, but
> set the value of cboSuppplierID to the SupplierID. I think that's what you
> want...
> (usually, the cboSupplierID would be "bound" to your SupplierID table
> field)
>
> On my website (below) I have a sample A97 and A2003 zip file named
> Combo Quick Find, which demonstrates the above method.
> --
> hth
> Al Campagna
> Microsoft Access MVP 2006-2009
> http://home.comcast.net/~cccsolutions/index.html
>
> "Find a job that you love... and you'll never work a day in your life."
>
> "Steve Muir" <SteveMuir(a)discussions.microsoft.com> wrote in message
> news:2FDDB0F7-8FA7-4594-B8AD-E157FE48A45F(a)microsoft.com...
> > Bit of a "noob" question but here goes....
> >
> > I am using an unbound form for data entry purposes. I am using an unbound
> > form as I have some VBA code which checks that mandatory fields are filled
> > in
> > first.
> >
> > This works fine where all the fields are text boxes (i.e. not combos or
> > list
> > boxes)
> > but the problem I'm having is that the parent table "tblContracts" has 4
> > lookup tables (which are used for combos with various fields on the form)
> > and
> > these are numeric fields which link between the tables (i.e. In the parent
> > table the field would be SupplierID whick links to the child table
> > SupplierID
> > field) In the form obviously it displays the actual name rather than the
> > index numerical value when the user clicks the dropdown menu. The issue
> > (I
> > think?) is that the VBA code I have is trying to insert a numerical value
> > (The ID field value) rather than the text which is displayed in the
> > dropdown
> > menu. How can I get round this??
> >
> > Apologies if this seems really simple but I have limited VBA coding
> > experience. The
> >
> > PS - VBA code to insert data to the table works perfectly if the table has
> > no lookup values in the combo boxes.
> >
> > These ar
> >
> > When I click the command button to insert the data from the form into the
> > table
>
>
> .
>
From: Al Campagna on
Steve,
We're missing something here...
I'm not sure why your controls are not bound, when you have
a table to hold those values. Using VB to update your table with the
unbound values after all values ahve been enetered is adding complexity
for little gain. It would be better to bind the form, and check for
validity
at each point in the process where necessary.

Zip the tables and forms needed for the problem, and email
to me via my website "Contact" (below).
Put "Newsgroup" in the subject, and indicate what version, and
what specific tables and forms are involved... in the body.
No charge... confidentiality assured.
No guarantees... only a best effort basis.
--
hth
Al Campagna
Microsoft Access MVP 2006-2009
http://home.comcast.net/~cccsolutions/index.html

"Find a job that you love... and you'll never work a day in your life."


"Steve Muir" <SteveMuir(a)discussions.microsoft.com> wrote in message
news:A3123D39-9021-456D-A457-C2E87675E965(a)microsoft.com...
> Hi,
>
> Thanks for the quick response but it's not quite what I'm after. After
> reading my post I did not explain myself very well at all!!
>
> I have the combobox rowsource set up to SELECT DISTINCT Suppliername from
> tblSupplier (to give the user a list of current supplier names to select
> from) And I have the number of columns etc exactly as you suggested. The
> problem comes when the VBA code tries to insert the data on the form
> fields
> into the Contracts table (Parent Table). The "actual" value (as seen on
> the
> form) is the Supplier Name (not the corresponding SupplierID (PK)) But
> when
> the code tries to insert the data into the parent table (tblContracts) it
> is
> trying to insert the Text value from the textbox, rather than the
> SupplierID
> numerical value needed for the numerical field value in tblContracts (the
> parent table)
>
> Hope this makes sense, I might be better off attaching the form itself to
> illustrate what I mean.
>
>
> "Al Campagna" wrote:
>
>> Steve,
>> Given cboSupplierID with SupplierID in the first column, and
>> SupplierName in the second column.
>> Setup your combobox like this...
>> No Of Columns = 2
>> Column Widths = 0" ; 1.5"
>>
>> This allows the user to only see the SupplierName, select a
>> SupplierName, but
>> set the value of cboSuppplierID to the SupplierID. I think that's what
>> you
>> want...
>> (usually, the cboSupplierID would be "bound" to your SupplierID table
>> field)
>>
>> On my website (below) I have a sample A97 and A2003 zip file named
>> Combo Quick Find, which demonstrates the above method.
>> --
>> hth
>> Al Campagna
>> Microsoft Access MVP 2006-2009
>> http://home.comcast.net/~cccsolutions/index.html
>>
>> "Find a job that you love... and you'll never work a day in your
>> life."
>>
>> "Steve Muir" <SteveMuir(a)discussions.microsoft.com> wrote in message
>> news:2FDDB0F7-8FA7-4594-B8AD-E157FE48A45F(a)microsoft.com...
>> > Bit of a "noob" question but here goes....
>> >
>> > I am using an unbound form for data entry purposes. I am using an
>> > unbound
>> > form as I have some VBA code which checks that mandatory fields are
>> > filled
>> > in
>> > first.
>> >
>> > This works fine where all the fields are text boxes (i.e. not combos or
>> > list
>> > boxes)
>> > but the problem I'm having is that the parent table "tblContracts" has
>> > 4
>> > lookup tables (which are used for combos with various fields on the
>> > form)
>> > and
>> > these are numeric fields which link between the tables (i.e. In the
>> > parent
>> > table the field would be SupplierID whick links to the child table
>> > SupplierID
>> > field) In the form obviously it displays the actual name rather than
>> > the
>> > index numerical value when the user clicks the dropdown menu. The
>> > issue
>> > (I
>> > think?) is that the VBA code I have is trying to insert a numerical
>> > value
>> > (The ID field value) rather than the text which is displayed in the
>> > dropdown
>> > menu. How can I get round this??
>> >
>> > Apologies if this seems really simple but I have limited VBA coding
>> > experience. The
>> >
>> > PS - VBA code to insert data to the table works perfectly if the table
>> > has
>> > no lookup values in the combo boxes.
>> >
>> > These ar
>> >
>> > When I click the command button to insert the data from the form into
>> > the
>> > table
>>
>>
>> .
>>


From: Al Campagna on
Stephen,
You wrote in an email to me...
>The form "AddNewContract" is where the code is not working. I think I know
>why
>**(because it is trying to insert a numeric field from the combobox,
>i.e. BuyerID value, rather than BuyerFName text value)
>as shown in the combobox dropdown after the user has made their
>selection from the combo box.

But... that's exactly what you want to do. You don't want to capture
the BuyerName, or the SupplierName,
you want to capture the BuyerID and the SupplierID to your table.
What would you do if you had 2 buyers named John Smith? You need the
"unique identifier"
BuyerID and SupplierID to always be sure you have the correct associated
name values.
**You bound BuyerID to the combo... then why would you want the name
text saved there?
------------------
You have a miscomception as to what "bound" means.
Your form AddNewContract IS a bound form. You have your tblContracts as
the Record Source for the form,
and each of your controls is bound to a table field. Ergo... the form and
the controls are "bound."
"Bound" doesn't have anything to do with when, and if, the record is
written to the table.
---------
Since most of your NewContract fields are Required, you can not write
the record
to the table, unless all required fields have been valued.
Control values are not written to the table until a Refresh, or Requery,
or Update, occurs...
or you move to another record, or the form closes. Your Save button is
really a bit redundant, but
that's not a big issue.
You could not add another record, or close the form unless all your Required
fields have been valued.
----------------
I created a query called qryYourContractDataView that shows how the IDs
have been related to the
appropriate name "on the fly." You would use this same process in any
subsequent form, query, or report
you need.

I also removed the Lookup values in tblContracts, so you can actually
see the ID values. I've always
avoided table Lookup definitions, as they can become very confusing to
bug-shoot. That's not to say
they can't be used. I just prefer to do it the "meat and potatoes" way.

Also, I removed the DataEntry = Yes from form AddNewContract
(should be named frmAddNewContract... for clarity only)
so that I could see the data values of my previously entered record.
-----
So... the upshot is that I didn't really "fix" anything. You had the combos
set up properly, but
didn't realize it...
--
hth
Al Campagna
Microsoft Access MVP 2006-2009
http://home.comcast.net/~cccsolutions/index.html

"Find a job that you love... and you'll never work a day in your life."

I'm going to add this reply to the thread on the newsgroup, so thers can see
the resolution... to date.
"Steve Muir" <SteveMuir(a)discussions.microsoft.com> wrote in message
news:A3123D39-9021-456D-A457-C2E87675E965(a)microsoft.com...
> Hi,
>
> Thanks for the quick response but it's not quite what I'm after. After
> reading my post I did not explain myself very well at all!!
>
> I have the combobox rowsource set up to SELECT DISTINCT Suppliername from
> tblSupplier (to give the user a list of current supplier names to select
> from) And I have the number of columns etc exactly as you suggested. The
> problem comes when the VBA code tries to insert the data on the form
> fields
> into the Contracts table (Parent Table). The "actual" value (as seen on
> the
> form) is the Supplier Name (not the corresponding SupplierID (PK)) But
> when
> the code tries to insert the data into the parent table (tblContracts) it
> is
> trying to insert the Text value from the textbox, rather than the
> SupplierID
> numerical value needed for the numerical field value in tblContracts (the
> parent table)
>
> Hope this makes sense, I might be better off attaching the form itself to
> illustrate what I mean.
>
>
> "Al Campagna" wrote:
>
>> Steve,
>> Given cboSupplierID with SupplierID in the first column, and
>> SupplierName in the second column.
>> Setup your combobox like this...
>> No Of Columns = 2
>> Column Widths = 0" ; 1.5"
>>
>> This allows the user to only see the SupplierName, select a
>> SupplierName, but
>> set the value of cboSuppplierID to the SupplierID. I think that's what
>> you
>> want...
>> (usually, the cboSupplierID would be "bound" to your SupplierID table
>> field)
>>
>> On my website (below) I have a sample A97 and A2003 zip file named
>> Combo Quick Find, which demonstrates the above method.
>> --
>> hth
>> Al Campagna
>> Microsoft Access MVP 2006-2009
>> http://home.comcast.net/~cccsolutions/index.html
>>
>> "Find a job that you love... and you'll never work a day in your
>> life."
>>
>> "Steve Muir" <SteveMuir(a)discussions.microsoft.com> wrote in message
>> news:2FDDB0F7-8FA7-4594-B8AD-E157FE48A45F(a)microsoft.com...
>> > Bit of a "noob" question but here goes....
>> >
>> > I am using an unbound form for data entry purposes. I am using an
>> > unbound
>> > form as I have some VBA code which checks that mandatory fields are
>> > filled
>> > in
>> > first.
>> >
>> > This works fine where all the fields are text boxes (i.e. not combos or
>> > list
>> > boxes)
>> > but the problem I'm having is that the parent table "tblContracts" has
>> > 4
>> > lookup tables (which are used for combos with various fields on the
>> > form)
>> > and
>> > these are numeric fields which link between the tables (i.e. In the
>> > parent
>> > table the field would be SupplierID whick links to the child table
>> > SupplierID
>> > field) In the form obviously it displays the actual name rather than
>> > the
>> > index numerical value when the user clicks the dropdown menu. The
>> > issue
>> > (I
>> > think?) is that the VBA code I have is trying to insert a numerical
>> > value
>> > (The ID field value) rather than the text which is displayed in the
>> > dropdown
>> > menu. How can I get round this??
>> >
>> > Apologies if this seems really simple but I have limited VBA coding
>> > experience. The
>> >
>> > PS - VBA code to insert data to the table works perfectly if the table
>> > has
>> > no lookup values in the combo boxes.
>> >
>> > These ar
>> >
>> > When I click the command button to insert the data from the form into
>> > the
>> > table
>>
>>
>> .
>>



 |  Next  |  Last
Pages: 1 2
Prev: Lookup...
Next: Data Entry