If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
|
Thread Tools | Display Modes |
#11
|
|||
|
|||
Does anyone understand toolbars?
Hi, Lyle. Thanks for this!
I created these objects below with the same names you used in your code, and I ran your code. On the line: ..WizCopyCmdbars "CommandBarsHolder.mdb" I get the error: "Object doesn't support this property or method." Any ideas? Thanks! Neil "lyle" wrote in message ups.com... On Nov 10, 7:25 am, "Neil" wrote: So, I tried to copy a toolbar. I have a custom menu bar for a form. Tried to copy it so that I could modify the copy and use it with another form. With no direct way to copy it, I made a copy of the MDB, renamed the toolbar, and then imported it back into the original MDB as a copy of the original (see "Copying a custom menu bar" thread here). Everything seemed fine until I tried to modify the copy. When I added or removed items from the menu bar, the original was modified as well! They were one toolbar with two instances in the db. So I'm back to where I started. Anyone know of a way to make a copy of a toolbar so that I can modify it and use a slightly different version with another form? A Hack: I create a command bar "Employee Attendance Entries". I store a copy in CommandBarsHolder.mdb To create a copy I run a hack: Public Sub AirCodeInHackersVille() With Application .CommandBars("Employee Attendance Entries").Name = "Whatever" With WizHook .Key = 51488399 .WizCopyCmdbars "CommandBarsHolder.mdb" End With .CommandBars("Employee Attendance Entries").Name = "Employee Attendance Entries" & Format(Now(), "yyyymmddhhnnss") .CommandBars("Whatever").Name = "Employee Attendance Entries" End With End Sub Now I have the orignal plus a copy named Employee Attendance Entries plus a date-time string. Will changes in one result in changes to another? I don't know but I doubt it. Is the code polished? Nope! Clearly it needs a bunch of error-handling thing-mes. Is this any use to anyone? I doubt it, but, of course, every tiny thing we learn may come in handy at some crucial time down the road and it's fun messing! The home db in this case is 2007; the bar holder is 1997. That's quite a jump. |
#12
|
|||
|
|||
Does anyone understand toolbars?
"Neil" wrote in
. net: .WizCopyCmdbars "CommandBarsHolder.mdb" I get the error: "Object doesn't support this property or method." You're using Access 2000, I think. -- lyle fairfield |
#13
|
|||
|
|||
Does anyone understand toolbars?
That's a good idea. I think I'll try that.
"Wayne Gillespie" wrote in message ... On Sat, 10 Nov 2007 22:20:24 GMT, "Neil" wrote: Rather than making a copy of your database I would try creating a new blank database and import only the toolbars from your database and no other objects. So you now have a database containing nothing but toolbars. Delete the toolbars you don't want, rename your target TB. Edit the TB as required and then import it back to your database. This might break whatever link is syncing the toolbars in the background. Don't know if it will work but it would be worth a try. No, that's exactly what I did -- except I didn't delete unused objects. I simply made a copy of the MDB, renamed the toolbar, and then imported all toolbars. Since the other toolbars had the same name as their original counterparts, they didn't import. The only thing that imported was the one that I renamed in the copy. So, I thought everything was fine, as I had two toolbars with two different names -- one for one form, and one for another form. The problem arose when I started modifying the copy. When I modified the copy that I had imported, the original was modified as well. Two toolbars in the database, two different names; yet somehow Access sees them as the same toolbar. "Arvin Meyer [MVP]" wrote in message ... Can you not make a copy of the database. Delete all the unused objects in the copy and use that as a basis for your new database? You should be able to rename and alter the copy in that manner. Doing whatever you wish to the "new" toolbar, then import the objects from the old database, including the old toolbar. -- Arvin Meyer, MCP, MVP http://www.datastrat.com http://www.mvps.org/access http://www.accessmvp.com "Neil" wrote in message t... So, I tried to copy a toolbar. I have a custom menu bar for a form. Tried to copy it so that I could modify the copy and use it with another form. With no direct way to copy it, I made a copy of the MDB, renamed the toolbar, and then imported it back into the original MDB as a copy of the original (see "Copying a custom menu bar" thread here). Everything seemed fine until I tried to modify the copy. When I added or removed items from the menu bar, the original was modified as well! They were one toolbar with two instances in the db. So I'm back to where I started. Anyone know of a way to make a copy of a toolbar so that I can modify it and use a slightly different version with another form? Wayne Gillespie Gosford NSW Australia |
#14
|
|||
|
|||
Does anyone understand toolbars?
That sounds really cool -- and a great idea for when you have standard
custom bars that you want to carry from app to app. I'll definitely keep that in mind. In this case, though, I just have this toolbar for this one app, and just need to make a copy of it so that I can modify it and use the copy with a different form. So, it seems in this case it's simpler just to copy it manually than to write code to create a new one with the same functionality. But I'll definitely keep this in mind in case I need to create a standard toolbar structure to bring into new apps. Thanks, Neil "Dale Fye" wrote in message ... I've not started doing this in Access yet, but recently did some programming in Excel, which doesn't have the ability to create popup commandbars the way that Access does. So you have to do it in code. I found it to be extremely easy, and plan on using this technique in the future rather than using the View-Toolbars-Customize methodology. This way, I will be able to copy the code module were these commandbars are created and move it into any database, with ease. Check out the Application.Commandbars collection Dale "Neil" wrote in message et... No, that's exactly what I did -- except I didn't delete unused objects. I simply made a copy of the MDB, renamed the toolbar, and then imported all toolbars. Since the other toolbars had the same name as their original counterparts, they didn't import. The only thing that imported was the one that I renamed in the copy. So, I thought everything was fine, as I had two toolbars with two different names -- one for one form, and one for another form. The problem arose when I started modifying the copy. When I modified the copy that I had imported, the original was modified as well. Two toolbars in the database, two different names; yet somehow Access sees them as the same toolbar. "Arvin Meyer [MVP]" wrote in message ... Can you not make a copy of the database. Delete all the unused objects in the copy and use that as a basis for your new database? You should be able to rename and alter the copy in that manner. Doing whatever you wish to the "new" toolbar, then import the objects from the old database, including the old toolbar. -- Arvin Meyer, MCP, MVP http://www.datastrat.com http://www.mvps.org/access http://www.accessmvp.com "Neil" wrote in message t... So, I tried to copy a toolbar. I have a custom menu bar for a form. Tried to copy it so that I could modify the copy and use it with another form. With no direct way to copy it, I made a copy of the MDB, renamed the toolbar, and then imported it back into the original MDB as a copy of the original (see "Copying a custom menu bar" thread here). Everything seemed fine until I tried to modify the copy. When I added or removed items from the menu bar, the original was modified as well! They were one toolbar with two instances in the db. So I'm back to where I started. Anyone know of a way to make a copy of a toolbar so that I can modify it and use a slightly different version with another form? |
#15
|
|||
|
|||
Does anyone understand toolbars?
Correct. Will be upgrading to 2002 soon.
"lyle fairfield" wrote in message ... "Neil" wrote in . net: .WizCopyCmdbars "CommandBarsHolder.mdb" I get the error: "Object doesn't support this property or method." You're using Access 2000, I think. -- lyle fairfield |
#16
|
|||
|
|||
Does anyone understand toolbars?
"Wayne Gillespie" wrote in message ... On Sat, 10 Nov 2007 22:20:24 GMT, "Neil" wrote: Rather than making a copy of your database I would try creating a new blank database and import only the toolbars from your database and no other objects. So you now have a database containing nothing but toolbars. Delete the toolbars you don't want, rename your target TB. Edit the TB as required and then import it back to your database. This might break whatever link is syncing the toolbars in the background. Don't know if it will work but it would be worth a try. Hi, Wayne. Well, I finally got around to trying your suggestion. I made a blank db, imported the toolbars from the original db into it; deleted unneeded objects; renamed the remaining custom menu bar; modified the menu bar. I then deleted the original toolbar from the original db, compacted the db, and then reimported that single menu bar back into the original db. And guess what? It still paired up with its twin! That's right -- the modification I made to the toolbar in the blank db was brought back into original db in both that toolbar and in the original toolbar. The two are inseparable. To recap: toolbar "A" was copied to toolbar "B". Modifications made to one were reflected in the other. Importing A and B into new B and deleting A from new db and deleting B from original db was thought to possibly break the link. Toolbar B was modified and renamed and brought back into original db, and modifications were reflected in A! Talk about inseparable! There seem to be no options here except to rebuild B from scratch. Sigh. Anyway, thought you'd find that interesting. Neil |
#17
|
|||
|
|||
Does anyone understand toolbars?
I return to my original post. This is so easy to do in code, why even
bother with headache of customizing a toolbar. The following is a popup toolbar I am using on a report, to replace the normal one. I've included constants because I am using late binding (this was more of a test than anything), but if you declare cbr as a Commandbar, you should get the intellisense that goes with that. One of the other advantages to this method, is that I have figured out how to create dropdown comboboxes and textboxes in my popup menus, which I was never able to figure out using the custom toolbars. All you have to do after this is write the code for the action events. HTH Dale Const BarPopup = 5 Const ControlButton = 1 Const ControlEdit = 2 Const ControlComboBox = 4 Const ButtonUp = 0 Const ButtonDown = -1 Public Sub ReportMenu() Dim cbr As Object Dim cbrButton As Object Dim strSQL As String Dim rs As DAO.Recordset On Error Resume Next CommandBars("MyReportMenu").Delete On Error GoTo ReportMenuError Set cbr = CommandBars.Add("MyReportMenu", BarPopup, , True) With cbr Set cbrButton = cbr.Controls.Add(ControlButton, , , , True) With cbrButton .Caption = "&Print" .Tag = "Print" .OnAction = "=fnPrintReport()" End With Set cbrButton = cbr.Controls.Add(ControlButton, , , , True) With cbrButton .Caption = "&Close" .Tag = "Close" .OnAction = "=fnCloseReport()" End With End With Exit Sub ReportMenuError: MsgBox "ReportMenu error" & vbCrLf End Sub "Neil" wrote in message . net... "Wayne Gillespie" wrote in message ... On Sat, 10 Nov 2007 22:20:24 GMT, "Neil" wrote: Rather than making a copy of your database I would try creating a new blank database and import only the toolbars from your database and no other objects. So you now have a database containing nothing but toolbars. Delete the toolbars you don't want, rename your target TB. Edit the TB as required and then import it back to your database. This might break whatever link is syncing the toolbars in the background. Don't know if it will work but it would be worth a try. Hi, Wayne. Well, I finally got around to trying your suggestion. I made a blank db, imported the toolbars from the original db into it; deleted unneeded objects; renamed the remaining custom menu bar; modified the menu bar. I then deleted the original toolbar from the original db, compacted the db, and then reimported that single menu bar back into the original db. And guess what? It still paired up with its twin! That's right -- the modification I made to the toolbar in the blank db was brought back into original db in both that toolbar and in the original toolbar. The two are inseparable. To recap: toolbar "A" was copied to toolbar "B". Modifications made to one were reflected in the other. Importing A and B into new B and deleting A from new db and deleting B from original db was thought to possibly break the link. Toolbar B was modified and renamed and brought back into original db, and modifications were reflected in A! Talk about inseparable! There seem to be no options here except to rebuild B from scratch. Sigh. Anyway, thought you'd find that interesting. Neil |
#18
|
|||
|
|||
Does anyone understand toolbars?
Yeah, you might be right. Thanks for the code. I'll look into doing that.
Neil "Dale Fye" wrote in message ... I return to my original post. This is so easy to do in code, why even bother with headache of customizing a toolbar. The following is a popup toolbar I am using on a report, to replace the normal one. I've included constants because I am using late binding (this was more of a test than anything), but if you declare cbr as a Commandbar, you should get the intellisense that goes with that. One of the other advantages to this method, is that I have figured out how to create dropdown comboboxes and textboxes in my popup menus, which I was never able to figure out using the custom toolbars. All you have to do after this is write the code for the action events. HTH Dale Const BarPopup = 5 Const ControlButton = 1 Const ControlEdit = 2 Const ControlComboBox = 4 Const ButtonUp = 0 Const ButtonDown = -1 Public Sub ReportMenu() Dim cbr As Object Dim cbrButton As Object Dim strSQL As String Dim rs As DAO.Recordset On Error Resume Next CommandBars("MyReportMenu").Delete On Error GoTo ReportMenuError Set cbr = CommandBars.Add("MyReportMenu", BarPopup, , True) With cbr Set cbrButton = cbr.Controls.Add(ControlButton, , , , True) With cbrButton .Caption = "&Print" .Tag = "Print" .OnAction = "=fnPrintReport()" End With Set cbrButton = cbr.Controls.Add(ControlButton, , , , True) With cbrButton .Caption = "&Close" .Tag = "Close" .OnAction = "=fnCloseReport()" End With End With Exit Sub ReportMenuError: MsgBox "ReportMenu error" & vbCrLf End Sub "Neil" wrote in message . net... "Wayne Gillespie" wrote in message ... On Sat, 10 Nov 2007 22:20:24 GMT, "Neil" wrote: Rather than making a copy of your database I would try creating a new blank database and import only the toolbars from your database and no other objects. So you now have a database containing nothing but toolbars. Delete the toolbars you don't want, rename your target TB. Edit the TB as required and then import it back to your database. This might break whatever link is syncing the toolbars in the background. Don't know if it will work but it would be worth a try. Hi, Wayne. Well, I finally got around to trying your suggestion. I made a blank db, imported the toolbars from the original db into it; deleted unneeded objects; renamed the remaining custom menu bar; modified the menu bar. I then deleted the original toolbar from the original db, compacted the db, and then reimported that single menu bar back into the original db. And guess what? It still paired up with its twin! That's right -- the modification I made to the toolbar in the blank db was brought back into original db in both that toolbar and in the original toolbar. The two are inseparable. To recap: toolbar "A" was copied to toolbar "B". Modifications made to one were reflected in the other. Importing A and B into new B and deleting A from new db and deleting B from original db was thought to possibly break the link. Toolbar B was modified and renamed and brought back into original db, and modifications were reflected in A! Talk about inseparable! There seem to be no options here except to rebuild B from scratch. Sigh. Anyway, thought you'd find that interesting. Neil |
|
Thread Tools | |
Display Modes | |
|
|