|
|
I have a form in a software program where the user can type in their information. When the zip cod form field is empty and I submit the form I get an error that says the string is in the wrong format, but when the field is filled in I don't get the error.
How do I check to see if someone has filled in a text box in the form or if it is empty?
|
|
|
|
|
try this:
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Then
MsgBox("You Must put something in here first")
Exit Sub
End If
continue on with your program stuff here........
End Sub
|
|
|
|
|
You might have Google it before you post it. Anyway here's something that you can use for your purpose.
' Validate a US ZIP code
' Example:
' MessageBox.Show(IsValidUsZip("12345")) ' => True
' MessageBox.Show(IsValidUsZip("12345-1234")) ' => True
' MessageBox.Show(IsValidUsZip("12345-12345")) ' => False
Function IsValidUsZip(ByVal zip As String) As Boolean
Return System.Text.RegularExpressions.Regex.IsMatch(zip, _
"^(\d{5}-\d{4})|(\d{5})$")
End Function
- Stop thinking in terms of limitations and start thinking in terms of possibilities -
|
|
|
|
|
I have a windows application where a form opens another form, as showe din the code below:
Public Class frmForm1
dim frmMyForm2 as frmForm2
public sub OpenForm2
If frmMyForm2 Is Nothing Then
frmMyForm2 = New frmForm2()
frmMyForm2.MdiParent = Me.ParentForm
frmMyForm2.Show()
Else
frmMyForm2.BringToFront()
End If
end sub
end class
As you can see, if form2 is nothing then a new instance is created and displayed, else it is bought to the front.
Problem arises when I close form2 and then try to re-open it from form1. Although the form is closed it still isn't equal to nothing, therefore, else clause is executed which obviously isn't any good.
Any ideas?
|
|
|
|
|
Have you tried dispose in form2 when closing?
frm2.close()
frm2.dispose()
That should get rid of it, or you could just hide it.#
hope this helps
Bob
Ashfield Consultants Ltd
|
|
|
|
|
Yes, I have tried disposing, but for some reason that doesn't make form2 equal to nothing, so again, the else clause is being executed.
Maybe I should just hide form2 instead of closing it then.
Thanks for your help.
|
|
|
|
|
Hi,
Liqz wrote: for some reason that doesn't make form2 equal to nothing
whatever the class, there is not a single method that can set a reference to Nothing.
Close() does not, Dispose() does not, Hide() does not.
the only thing that makes form2 equal Nothing is a statement such as
form2 = Nothing
You have two ways to solve your problem:
1.
never call close; just work with Hide() and Show()
2.
make sure you apply form2 = Nothing whenever you close form2.
|
|
|
|
|
But I would have to execute 'form2 = nothing' from form1, how does form1 know when form2 is closing?
|
|
|
|
|
If form1 is interested in what happens to form2, it could subscribe to its events,
in your case the Closed event.
|
|
|
|
|
Lets say that you have a form called Form1 and you want to check to see if it is open first so you dont have multiple instances of the form running around on your end user's desktop.
First we make a Class statement and define your Form1 as FormNumberOne with events:
Dim WithEvents FormNumberOne As Form = Form1
Then under an action like a menu item click or something we drop this if statement:
If FormNumberOne Is Nothing OrElse FormNumberOne.IsDisposed Then
Dim FormNumberOne As New Form
FormNumberOne = Form1
FormNumberOne.Show()
ElseIf FormNumberOne.Visible = False Then
FormNumberOne.Show()
Else
MsgBox("You already have the form number one open")
End If
Give this a try, should be what you are looking for...
|
|
|
|
|
I have a dataset containing 2 tables, PLSupplierAccount and PLProposedPayment, which contain related data. I have created a relationship between the two table.
I now need to execute the following sql statement, and return a single recordset/table of the data.
SELECT * FROM PLSupplierAccount INNER JOIN PLProposedPayment ON PLSupplierAccount.PLSupplierAccountID = PLProposedPayment.PLSupplierAccountID
Not sure how to do this, and Google[^]"> was not much help.
Any help appreciated (as always)
Steve Jowett
-------------------------
It is offen dangerous to try and see someone else's point of view, without proper training. Douglas Adams (Mostly Harmless)
|
|
|
|
|
Try this:
SELECT PLSupplierAccount.*,PLProposedPayment.*
FROM PLSupplierAccount INNER JOIN PLProposedPayment ON PLSupplierAccount.PLSupplierAccountID = PLProposedPayment.PLSupplierAccountID
But change PLSupplierAccount.*,PLProposedPayment.* for the columns you really need - its not good practice to do a select *, although I often use it for code examples
Bob
Ashfield Consultants Ltd
|
|
|
|
|
Bob
Thanks for the reply, but it's not the SQL statement I am having trouble with. I need to return the data from a DataSet i.e. execute the select statement against the dataset and get the results as a single datatable.
Steve Jowett
-------------------------
It is offen dangerous to try and see someone else's point of view, without proper training. Douglas Adams (Mostly Harmless)
|
|
|
|
|
Sorry, I misunderstood. Personally I would be tempted to requery the database and create the new table that way.
This may help, but I have not tried it myself. I'm kind of old fashioned, I like to let sql do the work for me whenever I can Microsoft Article
Bob
Ashfield Consultants Ltd
|
|
|
|
|
so you need to drop the combined dataset into an array, then loop through the array and assign each line to a pre-built internal data table?
|
|
|
|
|
Thats Microsoft's solution not mine I would requery the database and create the new table that way
Bob
Ashfield Consultants Ltd
|
|
|
|
|
Ideally I would also requery the database (and normally would), but in this case I need to load a subset of data from the database, make some changes to it and when the user is happy with the changes, submit them back.
Thanks for the help and advise
Steve Jowett
-------------------------
It is offen dangerous to try and see someone else's point of view, without proper training. Douglas Adams (Mostly Harmless)
|
|
|
|
|
I failed to mention two wonderful classes that you can use to do what you want quickly, one is dataset and the other is dataview and they should not be overlooked because they can help you out.
Public Class DataView
Inherits System.ComponentModel.MarshalByValueComponent
Member of: System.Data
Summary:
Represents a databindable, customized view of a System.Data.DataTable for sorting, filtering, searching, editing, and navigation.
Public Class DataSet
Inherits System.ComponentModel.MarshalByValueComponent
Member of: System.Data
Summary:
Represents an in-memory cache of data.
|
|
|
|
|
That was (or still is) the problem, Steve has a dataset with 2 datatables that he wants to query with a join. There is no real support within the dataset/datatable/datarelation world to do this easily.
Bob
Ashfield Consultants Ltd
|
|
|
|
|
Lets see if I can think this through ...
We point / read a dataset (call it dsOne) to a table from your SQL? server.
We point / read a second dataset (call it dsTwo) to another table from your SQL server.
We point a dataview (call it dvOne) to dsOne
We do a sort on dvOne on PLSupplierAccountID
We pull the first entry for PLSupplierAccountID in dvOne
We point a second dataview (call it dvTwo) to dsTwo
We use the entry from dv.One SupplierAccountID to do a dvtwo.Find
If we get a match we combine the row entry from dvOne with dvTwo in a DataGrid
Once you get all the matches combined in the datagrid, you can make your changes using your form.
These changes will be stored on the form until you "submit" them back to your SQL server using a update query.
This sound about right to you?
|
|
|
|
|
Sometimes life's a bitch.....
Just a thought, would linq help? I have only played with it briefly, but it might be worth a look?
Bob
Ashfield Consultants Ltd
|
|
|
|
|
I've not even had time to look at LINQ, but I think I will make the time.
Steve Jowett
-------------------------
It is offen dangerous to try and see someone else's point of view, without proper training. Douglas Adams (Mostly Harmless)
|
|
|
|
|
Looks interesting! I will have to play with this!
|
|
|
|
|
Hi,
we have a strange problem. A VB.net 2005 (.net 2.0) application runs on many WinXP clients and accesses a central DB (MaxDB 7.5.0.26, it's an open source DB by SAP) on a server. It works fine for all clients except for one of them. By the help of a profiler we found out on this client that every call of the VB command "myOdbcConnection.Close" needs about 2 seconds, which completely slows down the application (it only opens the connection when needed and afterwards closes it right away, which works fine on all the other clients). (The odbc driver is MaxDB 7.5.0.26.)
The client runs on WinXP SP3, the same problem occurs if SP3 is deinstalled and only SP2 is avaiable. We also deactivated the anti virus program ("F-secure") and the firewall - problem remains the same. Not only .net 2.0 (2.0.50727) is installed on the client but also .net 3.0 (need by another program). We deinstalled .net 3.0 - problem remains the same. ("Shared Add-in Extendability Update for Microsoft .NET Framework 2.0" and "Shared Add-in Support Update for Microsoft .NET Framework 2.0" are also installed on the client.) -- That is, we do not have any idea anymore what we could check ...
What could be wrong with the client? What should we have a closer look at?
Thanks in advance for help.
Kind regards,
Michael
|
|
|
|