|
|
Hi I'm trying to code a calendar control so that I can use this control to show dates (emphasis on several dates) highlighted in the month view of the control.
I am trying an Active X control, MSCAL.Calendar.7, but it may not support what I need to do.
I want to highlight several dates on a Month view of the calendar control, preferably in a color like red or something other than Grey/depressed.
What properties can do this for me and where should I look for examples?
Thanks,
REMOTE USER
|
|
|
|
|
Sorry, this is in Access, using VBA to code it up.
|
|
|
|
|
Hi all.
It might be the late hour but I can't figure out why this little piece of code won't work when I apply it in the real world:
' selectTest should eval to true...<br />
Sub doTest()<br />
selectTest 543<br />
End Sub<br />
<br />
Function selectTest(intAntal%)<br />
Select Case (intAntal)<br />
Case ((30 / 20) * 100), Is >= 100<br />
selectTest= True<br />
Exit Function<br />
Case Else<br />
selectTest= False<br />
End Select<br />
End Function
While this work, the equaling real code won't:
With objStation.Parkeringer(intP).Taellinger(intT)<br />
Select Case (.intAntalPladser)<br />
Case 0<br />
SkalMed = True<br />
If .intAntalParkeret = 0 Then<br />
MsgBox "På " & objStation.strNavn & " er der en tælling med" & _<br />
" 0 P-pladser og 0 parkeret." & Chr(10) & _<br />
"Stationen kommer med i rapporten.", vbInformation, "Advarsel"<br />
End If<br />
Exit Function<br />
Case ((.intAntalParkeret / .intAntalPladser) * 100), Is >= intBelaegningsprocent<br />
SkalMed = True<br />
Exit Function<br />
Case 1345, Is > 90 ' the code should at least stop here... but doesn't<br />
Stop<br />
Case Else<br />
SkalMed = False<br />
End Select<br />
End With
The above select case (almost) always returns false. It seems like it works sometimes. Like when intBelaegningsprocent is set to 5 but not 80 or 90.
Any ideas on why this happens?!?
Regards Jon.
Moving to C# .NET - the grass is always greener..
|
|
|
|
|
Jon,
There are many implicit data type conversions in this code (i.e. double to integer, float etc...). Maybe the erratic behaviour of the Select is caused by this?
My advice is to strictly type each variable and function to ensure that you are comparing similar data types rather than letting the compiler make its best guess at it.
e.g.
<br />
Option Strict On<br />
<br />
Function selectTest(ByVal intAntal As Integer) As Boolean<br />
<br />
Select Case (intAntal)<br />
<br />
Case CInt((30 / 20) * 100), Is >= 100<br />
selectTest = True<br />
'Exit Function<br />
<br />
Case Else<br />
selectTest = False<br />
<br />
End Select<br />
<br />
End Function<br />
Maybe the code in your second example is not stopping at Case 1345, Is > 90 is perhaps the case variable .intAntalPladser is neither 1345 nor > 90; or an exception is being thrown here or in preceeding Case statements. To investigate this, wrap the code in a a Try..Catch block to trap and display any errors.
...Steve
|
|
|
|
|
Thanks Steve for your reply. I figured it out. I was trying to use the select case statement as an If..ElseIf statement. Obviously I couldn't. Oh I forgot to mention that I use VB6 for this project (Access XP).
Moving to C# .NET - the grass is always greener..
|
|
|
|
|
I currently have an array of bytes and I want to print it to a file. When I open the filename and do the following statement:
Print #FileName, ArrayOfBytes
it prints a bunch of question marks and other characters that aren't the correct characters.
When I run the debugger, the values within the individual elements of the array are all the correct decimal ascii values.
ArrayOfBytes(1) = 50 It should be "P", which is what I want printed.
ArrayOfBytes(2) = 88 It should be "X", which is what I want printed.
How do I print this to a file but get the correct character values?
Thank you.
|
|
|
|
|
You need to convert the decimal values back to ascii characters. Here is a code snippet
=Encoding.ASCII.GetString(ArrayOfBytes,0,ArrayOfBytes.Length);
this returns a ascii encoded string
|
|
|
|
|
hello i want to connect to the ftp through vb.net .. i cannot find something suitable for me. i am working with vb.net and i am very confused!! can someone give me a link or some help pls. i want to download and upload a txtfile only! i dont want it for nothing else. i want to make a small messanger thats it. thanks!!
|
|
|
|
|
|
Is there a way to use a dll that was created in vb.net by vba?
|
|
|
|
|
So long as your VB.NET DLL is properly exposed to COM and registered, then it should work just like any other component. VB.NET and C# don't export functions like you would find in a unmanaged code DLL.
You can find out more by searching the articles for "expose COM", or click here[^].
|
|
|
|
|
|
I have a simple syntax issue that is causing me grief. In one of my dropdowns, several of my users have used "&" or " ' " in their choices. eg. Pete's Meat & Grocery. In VBA, the solution would be simple, I would imploy use the following syntax to convert the entire response to a string:
'" & NameofField & "' or if the field was numeric " & NameofField & "
In VB.net, this does not work. The function that I am running halts on Pete's Meat & Grocery and states that it cannot interpret the ' or the &.
What syntax do I use so that the entire contents of the field are read as one regardless of whether any of the contents are reserve keys or wildcard characters.
Thanks
Pat
|
|
|
|
|
There's something you're not telling us. Just putting an '&' character in a String will not screw up your code. Is this going to a database or something? A code snippet of where the problem is occuring would help greatly!
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
This is part of an automatic 'save' function that I have developed. Here is a code snippet.
EditALLFields(Me.txtPaymentCounter.Text, cboPayableTo.SelectedValue, "tb_Payments", "PayableTo", "Counter", "String")
Where...
EditALLFields = Name of Function
Me.txtPaymentCounter.Text = Unique Row ID Number for Source Table (tb_Payments)
Me.cboPayableTo.Text = Value of Combo or Text Box
tb_Payments = Source Table
Counter = Unique ID Field of Source Table (tb_Payments)
String = DataType of Field that is to be saved (Me.cboPayableTo) (Could be string, numeric, or date)
Now... if the value of Me.cboPayableTo.text does not include a wildcard, reserved character, or " or ' then, the function properly saves the value in Me.cboPayableTo back to tb_Payments. Works perfectly.
However, in the example that I used: Pete's Meat & Grocery... we have two parts that halt the function. Both the ' and the & halt the function with an error message:
Incorrect syntax near 's'. Unclosed quotation mark before the character string.
I won't bore you with the syntax of the actual EditALLFields function, but if necessary, I can. It is actually very concise and tight. The EditALLFields function merely opens the data connection, identifies the correct table, record, and parameters and saves the record. I have developed this because my users have a severe distain to any 'Save' Button on the actual form. So instead, I simply run this function on the 'Leave' event for each field. It sounds like alot of overhead, but in actuality, it is very quick, simple and extremely convenient for my users.
Pat
|
|
|
|
|
Capilano wrote:
I won't bore you with the syntax of the actual EditALLFields function, but if necessary, I can.
This is EXACTLY what we need!
|
|
|
|
|
Here is the Function:
Public Function EditALLFields(ByVal sID As String, ByVal sValue As String, ByVal sTable As String, ByVal sField As String, ByVal sIDField As String, ByVal sType As String)
Dim cmdSaveCurrentField As SqlCommand = New SqlCommand
Try
If CN.State = ConnectionState.Open Then
Else
CN.Open()
End If
With cmdSaveCurrentField
.Parameters.Clear()
.Connection = CN
.CommandText = "SaveFields"
.CommandType = CommandType.StoredProcedure
'Matches up to value of ID field at very beginning of row
.Parameters.Add("@sID", SqlDbType.VarChar, 255).Value = sID
'Is the new data value entered
.Parameters.Add("@sValue", SqlDbType.VarChar, 4000).Value = sValue
'Name of Table you are updating
.Parameters.Add("@sTable", SqlDbType.VarChar, 255).Value = sTable
'Name Field you are updating
.Parameters.Add("@sField", SqlDbType.VarChar, 255).Value = sField
'name of IDField for the Table
.Parameters.Add("@IDField", SqlDbType.VarChar, 255).Value = sIDField
'Type is data type
.Parameters.Add("@sType", SqlDbType.VarChar, 255).Value = sType
.ExecuteNonQuery()
End With
Catch ex As Exception
MsgBox(ex.Message)
Finally
cmdSaveCurrentField = Nothing
If CN.State = ConnectionState.Open Then
CN.Close()
End If
End Try
End Function
|
|
|
|
|
With what you've described and what you posted as your code, it's not this code that breaking. Instead, it would appear that it's your stored procedure, SaveFields, that's breaking.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Yes, I had thought of that too. But after some testing, we quickly realized that the original code was actually sending two choices. Subsequently, we worked on the function side and came up with this solution:
If InStr(sValue, "'", CompareMethod.Text) > 0 Then sValue = Microsoft.VisualBasic.Left(sValue, InStr(sValue, "'", CompareMethod.Text) - 1) & "'" & Microsoft.VisualBasic.Right(sValue, sValue.Length - InStr(sValue, "'", CompareMethod.Text) + 1)
End If
This seems to work well.
Thanks for your advice.
Pat
|
|
|
|
|
Here's my delima. I have a web form that inserts data into a SQL database via a stored procedure. I have 64 columns per row. The data can only be inserted/viewed but not deleted or updated. Is there a better way of updating 64 fields without having to assign the value of Textbox.Text directly? Here's what I'm doing it currently:
submitEPARControl.ascx.vb (Fieldnames changed for security):
Private Sub lbSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbSubmit.Click
Dim newRow As DataRow
Dim strUIC As String
Dim ds As New DataSet
Dim di As New DataInterface
If Page.IsValid Then
ds = di.CreateEmptyDataSet
ds.Tables(0).TableName = "Table"
newRow("Field1") = Field1.Text
newRow("Field2") = Field2.Text
newRow("Field3") = Field3.Text
ds.Tables(0).Rows.Add(newRow)
di.AddData(ds)
Else
End If
End Sub
DataServices.vb:
Public Function AddData(ByRef dsAddition As DataSet)
Dim db As Database = DatabaseFactory.CreateDatabase()
Dim dbCommandWrapper As DBCommandWrapper = db.GetStoredProcCommandWrapper("MyStoredProc")
dbCommandWrapper.AddInParameter("@Field1", DbType.String, "Field1", DataRowVersion.Proposed)
dbCommandWrapper.AddInParameter("@Field2", DbType.String, "Field2", DataRowVersion.Proposed)
dbCommandWrapper.AddInParameter("@Field3", DbType.String, "Field3", DataRowVersion.Proposed)
Return db.UpdateDataSet(dsAddition, dsAddition.Tables(0).TableName, dbCommandWrapper, Nothing, Nothing, UpdateBehavior.Continue)
End Function
- Paul Davis
|
|
|
|
|
I don't know for sure, but it looks like your adding the data to your DataTable object, then writing that same data back to the database using a stored procedure. Could you get away with just adding the data to the database with the stored procedure, then reload your DataTable? If the data you're retrieving is small enough this wouldn't be a problem. But if your DataTable holds thousands of rows, how your doing it would probably be the best way.
In either case, you can't do it with less code. And frankly, from what you've posted, I don't think your using enough code! Are you validating and normalizing your data before you add it to the database or are you letting your stored procedure add it?
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
At this point, the application is not in production. I have not yet added the validation code. However, that is my next step if this way of adding the data is the final way.
All my background is with unix/windows applications (mostly C/C++). Guess I was hoping for a cleaner way of doing it using bindings since I'm only adding one row at a time. I will be moving the commandwrapper to the submit event and add the data using the StoredProcedure directly as you suggested. That will clean up some.
Thank you for the response!
- Paul Davis
|
|
|
|
|
hi guys,
i've datagrid in my windows form and i've implemented combobox in one of the datagrid column. Now my problem is tht when i click on tht text of the comboboxcolumn it converts into dropdown and if i click it again it opens and show me all the available values. so in this case to see and select the value i have to click it twice. but i need to do it with one click. how can i do tht.
Or there is an another option but i dont know how to implement it. it is like when i bind my grid every row should have the combobox for a perticular column. ie. every combo should remain forever unlike in the normal case when it comes only when u try to edit a perticular row.
plz give me some solution..
thnx in advance
A R MOGHE.
|
|
|
|
|
...so in this case to see and select the value i have to click it twice. but i need to do it with one click. how can i do tht.
i've never done but try to handle the "VisibleChanged" event in your columnstyle and popup the combobox.
...it is like when i bind my grid every row should have the combobox for a perticular column. ie. every combo should remain forever unlike in the normal case when it comes only when u try to edit a perticular row.
your DatagridComboboxColumn has one instance of your combobox and shows it until one cell will be edited. if you like to show the combobutton in each cell of your column you have to draw it you own. you can use
system.Windows.Forms.ControlPaint.DrawComboButton
in your onPaint method
good luck
|
|
|
|
|