Thank you Andy

  • Thread starter Thread starter Helen
  • Start date Start date
H

Helen

Andy,
Thank you for your help. I appreciate the time that you
have taken to provide me with help. I will repost when I
have made the changes and let you know, but it looks like
it will work ok.

Thank you again

Helen
 
Hello Helen,

If your ID field is text then it has to be enclosed with '. So you would
change your line to read:-

DoCmd.OpenForm "ViewNotes", , , "[fldID] = '" & Me.tbRecID & "'",
acFormReadOnly, acDialog

HTH,

Neil.

Helen said:
Andy,
I changed and added some of your code to mine. I am having
a compile error and I think it is because the flrID is
AutoNumber and mine is text. Error at tbRecID

Private Sub btnView_Click()

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " &
Me.tbRecID, acFormReadOnly, acDialog
Me.Refresh

End Sub


The tbRecID doesn't show in the List of Properties/Methods

What am I doing wrong?

Thank you

Helen

-----Original Message-----
Andy,
Thank you for your help. I appreciate the time that you
have taken to provide me with help. I will repost when I
have made the changes and let you know, but it looks like
it will work ok.

Thank you again

Helen
.
 
Helen

In my example, fldID is the name of the primary key field in the table
"UserNotes" and "tbRecID" is the name of the control that is bound to fldID
on the form "Main". These names will need to be changed to suit your table
name and control.

As your Primary key is text (rather than autonum), the filter parameter of
the OpenForm method will need to be changed to include Text delimiters using
one of the following;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = '" & Me.tbRecID & "'",
acFormReadOnly, acDialog

or;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " & Chr(34) & Me.tbRecID &
Chr(34), acFormReadOnly, acDialog

You'll need to replace 'fldID' and 'tbRecID' with the names of your primary
key field and its control respectively.

HTH

Andy


Helen said:
Andy,
I changed and added some of your code to mine. I am having
a compile error and I think it is because the flrID is
AutoNumber and mine is text. Error at tbRecID

Private Sub btnView_Click()

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " &
Me.tbRecID, acFormReadOnly, acDialog
Me.Refresh

End Sub


The tbRecID doesn't show in the List of Properties/Methods

What am I doing wrong?

Thank you

Helen

-----Original Message-----
Andy,
Thank you for your help. I appreciate the time that you
have taken to provide me with help. I will repost when I
have made the changes and let you know, but it looks like
it will work ok.

Thank you again

Helen
.
 
Andy,

Private Sub btnZoom_Click()

DoCmd.OpenForm "frmAgentsNotes", , , "[AgentID] = '" &
Me.tbAgentID & "'", acFormReadOnly, acDialog
Me.Refresh

End Sub
---------
My key field: AgentID (text)
I have a text box: tbAgentID
I have the text box bound to AgentID

but in the listing of Property/Methods it doesn't show. I
have deleted the text box and recreated it , same problem.
I don't know why?

Any suggestions?

Thank you

Helen

-----Original Message-----
Helen

In my example, fldID is the name of the primary key field in the table
"UserNotes" and "tbRecID" is the name of the control that is bound to fldID
on the form "Main". These names will need to be changed to suit your table
name and control.

As your Primary key is text (rather than autonum), the filter parameter of
the OpenForm method will need to be changed to include Text delimiters using
one of the following;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = '" & Me.tbRecID & "'",
acFormReadOnly, acDialog

or;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " & Chr(34) & Me.tbRecID &
Chr(34), acFormReadOnly, acDialog

You'll need to replace 'fldID' and 'tbRecID' with the names of your primary
key field and its control respectively.

HTH

Andy


Helen said:
Andy,
I changed and added some of your code to mine. I am having
a compile error and I think it is because the flrID is
AutoNumber and mine is text. Error at tbRecID

Private Sub btnView_Click()

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " &
Me.tbRecID, acFormReadOnly, acDialog
Me.Refresh

End Sub


The tbRecID doesn't show in the List of Properties/Methods

What am I doing wrong?

Thank you

Helen

-----Original Message-----
Andy,
Thank you for your help. I appreciate the time that you
have taken to provide me with help. I will repost when I
have made the changes and let you know, but it looks like
it will work ok.

Thank you again

Helen
.


.
 
Hi Helen

I think my ISP's News Server must have had problems - I've only just got
your post along with around 70 others - so sorry for the apparent lack of
response!!

Both your 'Main' form (the one with btnZoom) and the 'zoom' form,
'frmAgentNotes', should have a textbox, tbAgentID, that is bound to AgentID.
Both forms should have the Record Source property set to queries that are
based on the same table and should be selecting the AgentID, and the 'Notes'
field as a minimum.

What we're trying to do is to open 'frmAgentNotes' with a filter to select
the Agent that is currently active on the 'main' form.

In my sample DB I used 3 fields where I think you're using 2 - I had fldID
as the PK (autonum, no duplicates), fldName (the Agents Name), and fldNotes.
I think that your PK field, AgentID, holds the Agent's Name - is this
correct?

Can you post details of your Table structure (field names and type) and a
brief description of what these hold?

Andy

Helen said:
Andy,

Private Sub btnZoom_Click()

DoCmd.OpenForm "frmAgentsNotes", , , "[AgentID] = '" &
Me.tbAgentID & "'", acFormReadOnly, acDialog
Me.Refresh

End Sub
---------
My key field: AgentID (text)
I have a text box: tbAgentID
I have the text box bound to AgentID

but in the listing of Property/Methods it doesn't show. I
have deleted the text box and recreated it , same problem.
I don't know why?

Any suggestions?

Thank you

Helen

-----Original Message-----
Helen

In my example, fldID is the name of the primary key field in the table
"UserNotes" and "tbRecID" is the name of the control that is bound to fldID
on the form "Main". These names will need to be changed to suit your table
name and control.

As your Primary key is text (rather than autonum), the filter parameter of
the OpenForm method will need to be changed to include Text delimiters using
one of the following;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = '" & Me.tbRecID & "'",
acFormReadOnly, acDialog

or;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " & Chr(34) & Me.tbRecID &
Chr(34), acFormReadOnly, acDialog

You'll need to replace 'fldID' and 'tbRecID' with the names of your primary
key field and its control respectively.

HTH

Andy


Helen said:
Andy,
I changed and added some of your code to mine. I am having
a compile error and I think it is because the flrID is
AutoNumber and mine is text. Error at tbRecID

Private Sub btnView_Click()

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " &
Me.tbRecID, acFormReadOnly, acDialog
Me.Refresh

End Sub


The tbRecID doesn't show in the List of Properties/Methods

What am I doing wrong?

Thank you

Helen


-----Original Message-----
Andy,
Thank you for your help. I appreciate the time that you
have taken to provide me with help. I will repost when I
have made the changes and let you know, but it looks like
it will work ok.

Thank you again

Helen
.


.
 
?? How do you know when I post? I have to go page by page
to find my posting. Is it because I can't use an email
client for the newsgroup?

Anyway, I haven't been in the office for two days, the A/C
went out and at 110 degrees our computers lockup (and so
do I in this cast). I will get back with you tomarrow when
the A/C is fixed, it is just to hot . . .

Thank you for looking in on me.

Helen
-----Original Message-----
Hi Helen

I think my ISP's News Server must have had problems - I've only just got
your post along with around 70 others - so sorry for the apparent lack of
response!!

Both your 'Main' form (the one with btnZoom) and the 'zoom' form,
'frmAgentNotes', should have a textbox, tbAgentID, that is bound to AgentID.
Both forms should have the Record Source property set to queries that are
based on the same table and should be selecting the AgentID, and the 'Notes'
field as a minimum.

What we're trying to do is to open 'frmAgentNotes' with a filter to select
the Agent that is currently active on the 'main' form.

In my sample DB I used 3 fields where I think you're using 2 - I had fldID
as the PK (autonum, no duplicates), fldName (the Agents Name), and fldNotes.
I think that your PK field, AgentID, holds the Agent's Name - is this
correct?

Can you post details of your Table structure (field names and type) and a
brief description of what these hold?

Andy

Helen said:
Andy,

Private Sub btnZoom_Click()

DoCmd.OpenForm "frmAgentsNotes", , , "[AgentID] = '" &
Me.tbAgentID & "'", acFormReadOnly, acDialog
Me.Refresh

End Sub
---------
My key field: AgentID (text)
I have a text box: tbAgentID
I have the text box bound to AgentID

but in the listing of Property/Methods it doesn't show. I
have deleted the text box and recreated it , same problem.
I don't know why?

Any suggestions?

Thank you

Helen

-----Original Message-----
Helen

In my example, fldID is the name of the primary key
field
in the table
"UserNotes" and "tbRecID" is the name of the control
that
is bound to fldID
on the form "Main". These names will need to be
changed
to suit your table
name and control.

As your Primary key is text (rather than autonum), the filter parameter of
the OpenForm method will need to be changed to include Text delimiters using
one of the following;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = '" & Me.tbRecID & "'",
acFormReadOnly, acDialog

or;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " & Chr(34)
&
Me.tbRecID &
Chr(34), acFormReadOnly, acDialog

You'll need to replace 'fldID' and 'tbRecID' with the names of your primary
key field and its control respectively.

HTH

Andy


Andy,
I changed and added some of your code to mine. I am having
a compile error and I think it is because the flrID is
AutoNumber and mine is text. Error at tbRecID

Private Sub btnView_Click()

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " &
Me.tbRecID, acFormReadOnly, acDialog
Me.Refresh

End Sub


The tbRecID doesn't show in the List of Properties/Methods

What am I doing wrong?

Thank you

Helen


-----Original Message-----
Andy,
Thank you for your help. I appreciate the time that you
have taken to provide me with help. I will repost
when
I
have made the changes and let you know, but it looks like
it will work ok.

Thank you again

Helen
.



.


.
 
Hi Helen

I use Outlook Express - its really quite good for NewsGroups - I set a flag
to watch conversations that I contribute to - they appear in red so its very
easy to find anything.

I'll check again tomorrow

Cheers

Andy

Helen said:
?? How do you know when I post? I have to go page by page
to find my posting. Is it because I can't use an email
client for the newsgroup?

Anyway, I haven't been in the office for two days, the A/C
went out and at 110 degrees our computers lockup (and so
do I in this cast). I will get back with you tomarrow when
the A/C is fixed, it is just to hot . . .

Thank you for looking in on me.

Helen
-----Original Message-----
Hi Helen

I think my ISP's News Server must have had problems - I've only just got
your post along with around 70 others - so sorry for the apparent lack of
response!!

Both your 'Main' form (the one with btnZoom) and the 'zoom' form,
'frmAgentNotes', should have a textbox, tbAgentID, that is bound to AgentID.
Both forms should have the Record Source property set to queries that are
based on the same table and should be selecting the AgentID, and the 'Notes'
field as a minimum.

What we're trying to do is to open 'frmAgentNotes' with a filter to select
the Agent that is currently active on the 'main' form.

In my sample DB I used 3 fields where I think you're using 2 - I had fldID
as the PK (autonum, no duplicates), fldName (the Agents Name), and fldNotes.
I think that your PK field, AgentID, holds the Agent's Name - is this
correct?

Can you post details of your Table structure (field names and type) and a
brief description of what these hold?

Andy

Helen said:
Andy,

Private Sub btnZoom_Click()

DoCmd.OpenForm "frmAgentsNotes", , , "[AgentID] = '" &
Me.tbAgentID & "'", acFormReadOnly, acDialog
Me.Refresh

End Sub
---------
My key field: AgentID (text)
I have a text box: tbAgentID
I have the text box bound to AgentID

but in the listing of Property/Methods it doesn't show. I
have deleted the text box and recreated it , same problem.
I don't know why?

Any suggestions?

Thank you

Helen


-----Original Message-----
Helen

In my example, fldID is the name of the primary key field
in the table
"UserNotes" and "tbRecID" is the name of the control that
is bound to fldID
on the form "Main". These names will need to be changed
to suit your table
name and control.

As your Primary key is text (rather than autonum), the
filter parameter of
the OpenForm method will need to be changed to include
Text delimiters using
one of the following;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = '" &
Me.tbRecID & "'",
acFormReadOnly, acDialog

or;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " & Chr(34) &
Me.tbRecID &
Chr(34), acFormReadOnly, acDialog

You'll need to replace 'fldID' and 'tbRecID' with the
names of your primary
key field and its control respectively.

HTH

Andy


Andy,
I changed and added some of your code to mine. I am
having
a compile error and I think it is because the flrID is
AutoNumber and mine is text. Error at tbRecID

Private Sub btnView_Click()

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " &
Me.tbRecID, acFormReadOnly, acDialog
Me.Refresh

End Sub


The tbRecID doesn't show in the List of
Properties/Methods

What am I doing wrong?

Thank you

Helen


-----Original Message-----
Andy,
Thank you for your help. I appreciate the time that you
have taken to provide me with help. I will repost when
I
have made the changes and let you know, but it looks
like
it will work ok.

Thank you again

Helen
.



.


.
 
Neil,
Thank you for your help. Sorry I didn't reply sooner.

Helen
-----Original Message-----
Hello Helen,

If your ID field is text then it has to be enclosed with '. So you would
change your line to read:-

DoCmd.OpenForm "ViewNotes", , , "[fldID] = '" & Me.tbRecID & "'",
acFormReadOnly, acDialog

HTH,

Neil.

Helen said:
Andy,
I changed and added some of your code to mine. I am having
a compile error and I think it is because the flrID is
AutoNumber and mine is text. Error at tbRecID

Private Sub btnView_Click()

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " &
Me.tbRecID, acFormReadOnly, acDialog
Me.Refresh

End Sub


The tbRecID doesn't show in the List of Properties/Methods

What am I doing wrong?

Thank you

Helen

-----Original Message-----
Andy,
Thank you for your help. I appreciate the time that you
have taken to provide me with help. I will repost when I
have made the changes and let you know, but it looks like
it will work ok.

Thank you again

Helen
.


.
 
Hi Helen

Glad to hear that you've now got things working, bad news about the lack of
a backup on the time card system though.

On the OK button being enabled, the code in my sample DB enables this when
the User tabs out of the last control (assuming that all boxes have
something in them). However, you can also add the following bits to the
OnChange events that will enable it when the last control contains something
other than Null or the empty string;

In Form 'UserName and Password';

Private Sub tbPWord_Change()

Me.btnOK.Enabled = Len(Me.tbPWord.Text & "") > 0

End Sub

In Form 'Change Password';

Private Sub tbVerify_Change()

Me.btnOK.Enabled = Len(Me.tbVerify.Text & "") > 0

End Sub

HTH

Andy

Helen said:
Sorry for being silent for a few days. Our time card
server went down, only to find out that NO ONE has this
setup in the backup solution. So I had to make a temp
Access front end with an Excel spreadsheet, (only temp). I
knew someday I would have to create this program in
Access. I look around for some examples, to get an idea of
where to start.

Anyway. I am typing much better single handedly.

Success, after I was off scrambling with the timesheets
and came back to take another look, what I found was that
I have some code from the ZoomBox control that I thought
had been removed. Removed it and YEA!

Andy, thank you so much for your help.

One thing I would like to do, is on two forms, password
and change password, when I start typing in he last box
(password/verify password) on either form, I would like
the OK button to be enabled. How can I change this?

Thanks Again

Helen


-----Original Message-----
Hi Helen

I use Outlook Express - its really quite good for NewsGroups - I set a flag
to watch conversations that I contribute to - they appear in red so its very
easy to find anything.

I'll check again tomorrow

Cheers

Andy

Helen said:
?? How do you know when I post? I have to go page by page
to find my posting. Is it because I can't use an email
client for the newsgroup?

Anyway, I haven't been in the office for two days, the A/C
went out and at 110 degrees our computers lockup (and so
do I in this cast). I will get back with you tomarrow when
the A/C is fixed, it is just to hot . . .

Thank you for looking in on me.

Helen

-----Original Message-----
Hi Helen

I think my ISP's News Server must have had problems -
I've only just got
your post along with around 70 others - so sorry for the
apparent lack of
response!!

Both your 'Main' form (the one with btnZoom) and
the 'zoom' form,
'frmAgentNotes', should have a textbox, tbAgentID, that
is bound to AgentID.
Both forms should have the Record Source property set to
queries that are
based on the same table and should be selecting the
AgentID, and the 'Notes'
field as a minimum.

What we're trying to do is to open 'frmAgentNotes' with a
filter to select
the Agent that is currently active on the 'main' form.

In my sample DB I used 3 fields where I think you're
using 2 - I had fldID
as the PK (autonum, no duplicates), fldName (the Agents
Name), and fldNotes.
I think that your PK field, AgentID, holds the Agent's
Name - is this
correct?

Can you post details of your Table structure (field names
and type) and a
brief description of what these hold?

Andy

Andy,

Private Sub btnZoom_Click()

DoCmd.OpenForm "frmAgentsNotes", , , "[AgentID]
= '" &
Me.tbAgentID & "'", acFormReadOnly, acDialog
Me.Refresh

End Sub
---------
My key field: AgentID (text)
I have a text box: tbAgentID
I have the text box bound to AgentID

but in the listing of Property/Methods it doesn't show.
I
have deleted the text box and recreated it , same
problem.
I don't know why?

Any suggestions?

Thank you

Helen


-----Original Message-----
Helen

In my example, fldID is the name of the primary key
field
in the table
"UserNotes" and "tbRecID" is the name of the control
that
is bound to fldID
on the form "Main". These names will need to be
changed
to suit your table
name and control.

As your Primary key is text (rather than autonum), the
filter parameter of
the OpenForm method will need to be changed to include
Text delimiters using
one of the following;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = '" &
Me.tbRecID & "'",
acFormReadOnly, acDialog

or;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " & Chr (34)
&
Me.tbRecID &
Chr(34), acFormReadOnly, acDialog

You'll need to replace 'fldID' and 'tbRecID' with the
names of your primary
key field and its control respectively.

HTH

Andy


Andy,
I changed and added some of your code to mine. I am
having
a compile error and I think it is because the flrID
is
AutoNumber and mine is text. Error at tbRecID

Private Sub btnView_Click()

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " &
Me.tbRecID, acFormReadOnly, acDialog
Me.Refresh

End Sub


The tbRecID doesn't show in the List of
Properties/Methods

What am I doing wrong?

Thank you

Helen


-----Original Message-----
Andy,
Thank you for your help. I appreciate the time that
you
have taken to provide me with help. I will repost
when
I
have made the changes and let you know, but it looks
like
it will work ok.

Thank you again

Helen
.



.



.


.
 
That works! (How do you know this stuff?)

I tried to make a separate table for fldPWord and fldPName
I created a one to many table tblPWordPName

But not sure what I need to change. I tried a query, but
then my main form is blank.

Thanks again for your help.

Helen

PS The temp solution for the time card works for now. I
will do something with this later when I have time.

-----Original Message-----
Hi Helen

Glad to hear that you've now got things working, bad news about the lack of
a backup on the time card system though.

On the OK button being enabled, the code in my sample DB enables this when
the User tabs out of the last control (assuming that all boxes have
something in them). However, you can also add the following bits to the
OnChange events that will enable it when the last control contains something
other than Null or the empty string;

In Form 'UserName and Password';

Private Sub tbPWord_Change()

Me.btnOK.Enabled = Len(Me.tbPWord.Text & "") > 0

End Sub

In Form 'Change Password';

Private Sub tbVerify_Change()

Me.btnOK.Enabled = Len(Me.tbVerify.Text & "") > 0

End Sub

HTH

Andy

Helen said:
Sorry for being silent for a few days. Our time card
server went down, only to find out that NO ONE has this
setup in the backup solution. So I had to make a temp
Access front end with an Excel spreadsheet, (only temp). I
knew someday I would have to create this program in
Access. I look around for some examples, to get an idea of
where to start.

Anyway. I am typing much better single handedly.

Success, after I was off scrambling with the timesheets
and came back to take another look, what I found was that
I have some code from the ZoomBox control that I thought
had been removed. Removed it and YEA!

Andy, thank you so much for your help.

One thing I would like to do, is on two forms, password
and change password, when I start typing in he last box
(password/verify password) on either form, I would like
the OK button to be enabled. How can I change this?

Thanks Again

Helen


-----Original Message-----
Hi Helen

I use Outlook Express - its really quite good for NewsGroups - I set a flag
to watch conversations that I contribute to - they
appear
in red so its very
easy to find anything.

I'll check again tomorrow

Cheers

Andy

?? How do you know when I post? I have to go page by page
to find my posting. Is it because I can't use an email
client for the newsgroup?

Anyway, I haven't been in the office for two days,
the
A/C
went out and at 110 degrees our computers lockup (and so
do I in this cast). I will get back with you tomarrow when
the A/C is fixed, it is just to hot . . .

Thank you for looking in on me.

Helen

-----Original Message-----
Hi Helen

I think my ISP's News Server must have had problems -
I've only just got
your post along with around 70 others - so sorry for the
apparent lack of
response!!

Both your 'Main' form (the one with btnZoom) and
the 'zoom' form,
'frmAgentNotes', should have a textbox, tbAgentID, that
is bound to AgentID.
Both forms should have the Record Source property
set
to
queries that are
based on the same table and should be selecting the
AgentID, and the 'Notes'
field as a minimum.

What we're trying to do is to open 'frmAgentNotes' with a
filter to select
the Agent that is currently active on the 'main' form.

In my sample DB I used 3 fields where I think you're
using 2 - I had fldID
as the PK (autonum, no duplicates), fldName (the Agents
Name), and fldNotes.
I think that your PK field, AgentID, holds the Agent's
Name - is this
correct?

Can you post details of your Table structure (field names
and type) and a
brief description of what these hold?

Andy

Andy,

Private Sub btnZoom_Click()

DoCmd.OpenForm "frmAgentsNotes", , , "[AgentID]
= '" &
Me.tbAgentID & "'", acFormReadOnly, acDialog
Me.Refresh

End Sub
---------
My key field: AgentID (text)
I have a text box: tbAgentID
I have the text box bound to AgentID

but in the listing of Property/Methods it doesn't show.
I
have deleted the text box and recreated it , same
problem.
I don't know why?

Any suggestions?

Thank you

Helen


-----Original Message-----
Helen

In my example, fldID is the name of the primary key
field
in the table
"UserNotes" and "tbRecID" is the name of the control
that
is bound to fldID
on the form "Main". These names will need to be
changed
to suit your table
name and control.

As your Primary key is text (rather than
autonum),
the
filter parameter of
the OpenForm method will need to be changed to include
Text delimiters using
one of the following;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = '" &
Me.tbRecID & "'",
acFormReadOnly, acDialog

or;

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " &
Chr
(34)
&
Me.tbRecID &
Chr(34), acFormReadOnly, acDialog

You'll need to replace 'fldID' and 'tbRecID' with the
names of your primary
key field and its control respectively.

HTH

Andy


Andy,
I changed and added some of your code to mine.
I
am
having
a compile error and I think it is because the flrID
is
AutoNumber and mine is text. Error at tbRecID

Private Sub btnView_Click()

DoCmd.OpenForm "ViewNotes", , , "[fldID] = " &
Me.tbRecID, acFormReadOnly, acDialog
Me.Refresh

End Sub


The tbRecID doesn't show in the List of
Properties/Methods

What am I doing wrong?

Thank you

Helen


-----Original Message-----
Andy,
Thank you for your help. I appreciate the time that
you
have taken to provide me with help. I will repost
when
I
have made the changes and let you know, but it looks
like
it will work ok.

Thank you again

Helen
.



.



.



.


.
 
Back
Top