Nothern_Lights
asked on
Giving a Form a Unique ID
Hey Experts
I am making POS Software and I need to give each transaction form and unique id
I tried
Private Sub CmdSaleToClient_Click()
Dim frm As New frmSaleToClient
Transcode = Transcode + 1
frm.Caption = Transcode
frm.Show
End Sub
But it does not work when you get to the main bill screen
The problem is if you open say 5 transactions it opens five form each with a different transaction ID but if I go to transaction form 1 and go to the main bill screen the transaction id changes to 5.
Please Help
Nothern_Lights
I am making POS Software and I need to give each transaction form and unique id
I tried
Private Sub CmdSaleToClient_Click()
Dim frm As New frmSaleToClient
Transcode = Transcode + 1
frm.Caption = Transcode
frm.Show
End Sub
But it does not work when you get to the main bill screen
The problem is if you open say 5 transactions it opens five form each with a different transaction ID but if I go to transaction form 1 and go to the main bill screen the transaction id changes to 5.
Please Help
Nothern_Lights
ASKER
Hey Tim
What is the difference between MDI and SDI application?
In the frmSaleToClient properties I have in the caption "Sale To Client"
And I use code to change the form caption to the transaction ID but when I read the form caption I get “Sale To Client” but on the screen is has the Transaction ID
I tried storing the Transaction ID in the Form Tag but i still got the same problem for so weird reason
Thanks
Nothern_Lights
What is the difference between MDI and SDI application?
In the frmSaleToClient properties I have in the caption "Sale To Client"
And I use code to change the form caption to the transaction ID but when I read the form caption I get “Sale To Client” but on the screen is has the Transaction ID
I tried storing the Transaction ID in the Form Tag but i still got the same problem for so weird reason
Thanks
Nothern_Lights
Nothern_Lights,
Firstly, MDI - multiple document interface, where you have a parent form and child forms are contained and constrained within it. SDI - Single Document Interface, here you can still have multiple forms but they are effectively only constrained by the desktop. Word and excel are good examples of an MDI interface, though these days you can make them work in a pseudo-SDI way as well.
The reason you still get "Sale To Client" I would expect is that you are not referencing the form you think you are. Because you are creating new instances of the same base form, if you refer to "frmSaleToClient.Caption" it will actually open a hidden instance of the base form and that is the one you are probably getting the information from. You could probably use ActiveForm.Caption / ActiveForm.Tag to determine which form you are currently referring to. This will work excellently in an MDI interface but perhaps not so well in SDI.
Tim
Firstly, MDI - multiple document interface, where you have a parent form and child forms are contained and constrained within it. SDI - Single Document Interface, here you can still have multiple forms but they are effectively only constrained by the desktop. Word and excel are good examples of an MDI interface, though these days you can make them work in a pseudo-SDI way as well.
The reason you still get "Sale To Client" I would expect is that you are not referencing the form you think you are. Because you are creating new instances of the same base form, if you refer to "frmSaleToClient.Caption" it will actually open a hidden instance of the base form and that is the one you are probably getting the information from. You could probably use ActiveForm.Caption / ActiveForm.Tag to determine which form you are currently referring to. This will work excellently in an MDI interface but perhaps not so well in SDI.
Tim
MDI - Multiple Document Interface
SDI - Single Document Interface
SDI - Single Document Interface
See solution here.
https://www.experts-exchange.com/questions/21891753/Multiple-transactions-POS-software.html
I think that by declaring the form with the new keyword the form load event fires first before the current sub executes.
Dim frm As New frmSaleToClient
Change to:
Dim frm As frmSaleToClient
set frm = New frmSaleToClient
https://www.experts-exchange.com/questions/21891753/Multiple-transactions-POS-software.html
I think that by declaring the form with the new keyword the form load event fires first before the current sub executes.
Dim frm As New frmSaleToClient
Change to:
Dim frm As frmSaleToClient
set frm = New frmSaleToClient
ASKER
Tim
I can only get ActiveForm.Caption / ActiveForm.Tag to work using MDI form
I would prefer to not to use MDI use SDI instead
Thanks
Nothern_Lights
I can only get ActiveForm.Caption / ActiveForm.Tag to work using MDI form
I would prefer to not to use MDI use SDI instead
Thanks
Nothern_Lights
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks For All your Help Tim
Nothern_Lights
Nothern_Lights
Is this an MDI application or an SDI application? The key really to either is to determine exactly what happens, you have the relevant transcode in each form's caption so this is what you could use. Personally I would store this in the form's .Tag property but caption is fine.
It depends on how you activate the main form from each transaction, you may be able to set a property in the main form from the last activated transaction form for example.
Tim Cottee