|
So I have finally figured out how to dynamically add data to comboboxes created on the fly however I still cant create an on change event for the combobox.
Heres what I am looking at doing.
Set optioncombobox = Me.controls.Add("Forms.ComboBox.1", "Cheese" & comboNumber)
With optioncombobox
.Text = "Please Select an option..."
.left = 114
.width = 276
.top = 102
.Height = 18
End With
While Not (IsEmpty(Range("'Info'!a" & Counter)))
X = Range("'Info'!a" & Counter).Value
If InStr(1, X, "|") > 0 Then
Else
With controls("Cheese" & comboNumber)
.AddItem (Range("'Info'!b" & Counter).Value)
End With
End If
Counter = Counter + 1
Wend
Then I am trying to create something like this
Private Sub Controls("Cheese1")_Change()
Do Stuff
End Sub
But I am getting an error saying "Expected: Identifier"
Anyone have any thoughts on how I can resolve this??
However when I create a commandbutton click event it can do all of this with no issue.
But I want to do this in an On Change event.
Even if there is some way to run an event if any combobox on the whole form changes that would be fine.
|
|
|
|
|
In VB6, handling events for dynamically added controls in quite difficult. There is a keyword WithEvents that may help you, but I am not sure how you can use it with dynamically added controls.
Your syntax for event method declaration is totally wrong Work on the WithEvents keyword.
|
|
|
|
|
Why are you still using VB6 in 2009 ?
Vuyiswa Maseko,
Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code.
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.com
vuyiswa@its.co.za
http://www.itsabacus.co.za/itsabacus/
|
|
|
|
|
Hi,
I am using SQL database with VB. The database "company" has 1 column "EmpID" which I filled with 0,1,2,... so on, and "EmpID" column is in string format.
Now I want to get the MAX of this "EmpID", for this I wrote a code like this in VB :
SELECT MAX(EmpID) From company.
I found that out of 0 to 150 EmpID in database, it is selecting MAX value as 9 and sometime as 99.
I think there is something wrong with this. Also, If I test it for small data, say from 1 to 15, it is selecting correct MAX value.
Can someone help me how to do this? My basic idea is to get the last "EmpID" which I will add and use it as next "EmpID".
Thanks
R.S.
|
|
|
|
|
I think that is because your EmpId id not an integer in your database. It something be varchar or something similar. You should change it to int if it can have only integer values. In order to make the query work in current condition, use following:
SELECT MAX(cast(EmpID as int)) From company
Note that this is not a good practice.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
It is because your EmpID is stored as text instead of number. The correct datatype to use is 'int', and your EmpID column most probably is 'varchar' datatype.
|
|
|
|
|
Select MAX(cast(EmpId as int)) from TblName
OR
Select top 1 EmpId from TblName order by EmpId desc
Niladri Biswas
|
|
|
|
|
Dear,
Could any body assist me regardig the following issues.
1. In my VB project when I am trying to upload .xls file.Error message is coming "Run Time Error '-2147319779(8002801d)' Automation Error : Library Not Registered"
Code Line where error is coming...
<br />
If (fso.FileExists(Trim(Text1.Text)) = False) Then <br />
however same code is running in other machine without any error.
Please let me know asap.
Thanks
Ashish
modified on Friday, November 27, 2009 1:09 AM
|
|
|
|
|
I believe this is VB6 code and you are using File System Objects in your code. Your target system is missing the Microsoft Scripting Runtime Library DLL (scrrun.dll).
Please note that there is a known versioning problem with this DLL. Ensure that you copy and register the correct version that you have compiled your application with.
|
|
|
|
|
Dear Shameel,
I have done what I was told by you.Still the same error is coming.Even I have given full rights for me(as a login user).
Could you/anybody suggest me for that...
Thanks
Ashish
|
|
|
|
|
Check if you have scrrun.dll in your target box (typically in %System32% folder), and if it matches the exact same version of the dll that is in your development box.
|
|
|
|
|
mates,
Is it possible to automatically open an excel print preview?
if possible, can you give me an idea how to do it..
thanks.
note: I will code this in visual basic.
thanks in advance
C# コードMicrosoft End User
2000-2008
「「「「「「「「「「「「「「「「「「「「「「「「「「「「
The best things in life are free
」」」」」」」」」」」」」」」」」」」」」」」」」」」」
|
|
|
|
|
I think you can use Microsoft.Office.Interop.Excel.Workbook.PrintPreview method for this.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
I need to deploy a .NET 2.0 windows application so if no SQL Server found on the network, it will allow them to install SQL Express.
If there is SQL Server, then it will allow them to create a database with some baseline data.
Really need help on this,
Thanks,
Ekjon
|
|
|
|
|
Basically, my concern is - to create a database with 30/40 tables with some data in some of them - the sql statements would be large. What would be the best approach to deal with it?
|
|
|
|
|
Hello,
I am programming in vb2005
I have some pictures of a character that if you change them you got a movement of him. I write a small function that move the character when clicking on right arrow. THe images are in PNG format so it is good for the transparency. Then problem is when I put the characted on a image backkground I get jump of the picture.
How can I fix the problem?
Thank you
Shay Noy
|
|
|
|
|
What code have you got so far?
Hard answer unless we know the bigger picture.
------------------------------------
In science, 'fact' can only mean 'confirmed to such a degree that it would be perverse to withhold provisional assent.' I suppose that apples might start to rise tomorrow, but the possibility does not merit equal time in physics classrooms. Stephen J Gould
|
|
|
|
|
I don't understand your reply.
Have you understand my post?
Thank you
Shay Noy
|
|
|
|
|
[LOUD AND SLOW...]
Post the code you have written already
[/LOUD AND SLOW...]
------------------------------------
In science, 'fact' can only mean 'confirmed to such a degree that it would be perverse to withhold provisional assent.' I suppose that apples might start to rise tomorrow, but the possibility does not merit equal time in physics classrooms. Stephen J Gould
|
|
|
|
|
Imports system.Reflection
Public Class Form1
Private arrLeft(5) As Bitmap, arrRight(5) As Bitmap
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
arrLeft(0) = My.Resources.L1 : arrLeft(1) = My.Resources.L2 : arrLeft(2) = My.Resources.L3
arrLeft(3) = My.Resources.L4 : arrLeft(4) = My.Resources.L5 : arrLeft(5) = My.Resources.L6
arrRight(0) = My.Resources.R1 : arrRight(1) = My.Resources.R2 : arrRight(2) = My.Resources.R3
arrRight(3) = My.Resources.R4 : arrRight(4) = My.Resources.R5 : arrRight(5) = My.Resources.R6
End Sub
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
Static ind As Integer, LastDir As String
Static counter As Integer
Select Case e.KeyCode
Case Keys.Left
If LastDir = Keys.Right Then ind = 0 : counter = 0
If counter Mod 5 = 0 Then
PictureBox1.Image = arrLeft(ind Mod 6)
Application.DoEvents()
PictureBox1.Left -= 10
ind += 1
End If
LastDir = Keys.Left
Case Keys.Right
If LastDir = Keys.Left Then ind = 0 : counter = 0
If counter Mod 5 = 0 Then
PictureBox1.Image = arrRight(ind Mod 6)
Application.DoEvents()
PictureBox1.Left += 10
ind += 1
End If
LastDir = Keys.Right
End Select
counter = counter Mod 21 + 1
End Sub
End Class
Shay Noy
|
|
|
|
|
Hello, I'm totally new to VB and I need some help on creating a custom date format script for a label printer.
The date format is 3 alphanumeric characters (e.g 9BO, 9=year 2009, B=month 11 and O=day 24). The first character represents the year, the 2nd character represents the month and the 3rd character represents the day (day = 1-V with V being day 31).
Any help would be greatly appreciated.
Thanks
|
|
|
|
|
Did you try something? Where are you stuck up ?
|
|
|
|
|
Isn't this a case of converting the numbers of the year, month and day to base 36?
Try here.[^]
Steve Jowett
-------------------------
Real programmers don't comment their code. If it was hard to write, it should be hard to read.
|
|
|
|
|
I am currently trying to make a program that will read in a text file full of records and then allow the user to add or edit
the data. Basically like a database. Well i am trying to set up my queries right now, I am just trying to Sort by Last name and then display all the records in ascending order. the data is passed into 4 different text boxes though, one for FIRST NAME, LAST NAME, PHONE NUMBER, and GPA, SO when the user clicks a NEXT button he/she can view each record sorted by LAST NAME.
My problem i am having though is that when the user clicks the SORT by LAST NAME button it does sort but SPITS OUT THE LAST RECORD of the LIST instead of one at a time and then when he/she tries to click the NEXT BUTTON it just goes to End of File instead of showing the correct sorted list one at a time. CAN SOMEONE PLEASE TELL ME WHAT I AM LEAVING OUT OR NOT DOING RIGHT?
here is my sort routine:
Public Sub btnDisplaySorted_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplaySorted.Click
Dim sortedLastName = From names In students Order By names.lastName Ascending Select names
For Each element In sortedLastName
txtFirstName.Text = element.firstName
txtLastName.Text = element.lastName
txtG.Text = element.gpa
txtPhone.Text = element.tele
Next
End Sub
and my Next button routine:
Public Structure student 'structure used to hold fields in student list
Dim lastName As String
Dim firstName As String
Dim tele As String
Dim gpa As Decimal
End Structure
'GLOBAL Variables needed for entire program
Public students As New List(Of student) 'create list of students
Public oneStudent As New student 'creates a place holder for one selected student
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
Dim i As Integer
For i = 0 To students.Count - 1
Dim fname As String = students(i).firstName
Dim lname As String = students(i).lastName
txtFirstName.Text = fname
txtLastName.Text = lname
txtG.Text = oneStudent.gpa
txtPhone.Text = oneStudent.tele
Next i
End Sub
|
|
|
|
|
As far as i can tell you seem to be going about this the wrong way. Once you have read the textfile and parsed
the text into student objects, add each student to the list. To sort the list you have 2 options
1. Implement IComparer in your student structure like so :
Private Structure Student
Implements IComparable
Public lastName As String
Public firstName As String
Public tele As String
Public gpa As Decimal
Public Function CompareTo(ByVal obj As Object) As Integer Implements IComparable.CompareTo
If TypeOf obj Is Student Then
Dim otherStudent As Student = DirectCast(obj, Student)
Return Me.lastName.CompareTo(otherStudent.lastName)
Else
Throw New ArgumentException("object is not a student")
End If
End Function
End Structure
then once you have assmebled the list of students you can just call
Students.Sort()
and your list will automatically be sorted.
2. If you have to use LinQ (I take it this is homework) then you need to implement a function that returns a sorted list of students like so :
Private Function SortWithLinQ(ByVal StudentList As List(Of Student)) As List(Of Student)
Dim newStudentList As New List(Of Student)
Dim sortedLastName = From names In StudentList Order By names.lastName Ascending
For Each element In sortedLastName
newStudentList.Add(element)
Next
Return newStudentList
End Function
and then once you have assembled your list you call
Students = SortWithLinQ(Students)
and then you can implement the logic to scroll through the students.
Hope this helps.
|
|
|
|