WHERE Category = '" + CategorySorter.Text + "' AND DateAdded = '" + DateValue("DateEnd.Text") + "' "

thats my query and its not working, if the user input a date(like this 12/25/12) in DateEnd.Text, i want to confirm if it is existing on a database

Recommended Answers

All 10 Replies

Depends on the database, you need to check with the database manager (maybe its you) to find out what format the database expects. MS-Addess wants dd-mm--yyyy format while others may want dd/mm/yyyy or yyyy/mm/dd or yyyy/dd/mm or something else. Before sending to the database I suppose you need to validate the text in DateEnd.Text is a valid date and in the correct format.

The database date format is 12/31/2012, i inputed almost all kinds of date inside DateEnd.Text, still "data type mismatch error"
sir here's the code:

Sub FilteredQuery()
cnDDR.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\parts.mdb;"

    With cmd
        .ActiveConnection = cnDDR
        .CommandType = adCmdText
        .CommandText = "Select Category, DateAdded FROM comparts WHERE Category = '" + Category.Text + "' AND DateAdded = '" + DateValue(DateEnd.Text) + "' "
    End With

    With rsDDR
        .ActiveConnection = cnDDR
        .CursorLocation = adUseClient
        .Open cmd
    End With

End Sub

I used this code from msdn to populate the report dynamically, so i can view specific date which will match from user input


    Dim q As Integer
    Dim intCtrl As Integer
    Dim x As Integer
    Dim z As Integer

    x = 0
    q = 0
    z = 0

    With DynamicDR
        Set .DataSource = rsDDR
        .DataMember = ""

        With .Sections("Section1").Controls

            For intCtrl = 1 To .Count

                If TypeOf .Item(intCtrl) Is RptLabel Then
                    .Item(intCtrl).Caption = rsDDR.Fields(q).Name & " :"
                    q = q + 1
                End If

                If TypeOf .Item(intCtrl) Is RptTextBox Then
                    .Item(intCtrl).DataMember = ""
                    .Item(intCtrl).DataField = rsDDR(z).Name
                    z = z + 1
                End If

        Next intCtrl

        End With


    End With

What database are you using? It should have some sort of administrator panel where you can manually enter and execute sql statements. If it has one then use it to execute the sql you are trying to create. Then when you find one that works change your vb program accordingly.

im using access (parts.mdb) its compatible with access 2003, i used myphpadmin before but for just a tutorial, and it has ssection which we can perform sql queries,

when i created the database (parts.mdb), the DateAdded created as a "Date" data type

its working now, i used this:

"Select ItemCode, ItemName, Category, Description, Supplier, ItemPrice, InStock, OnOrder, DateAdded FROM comparts WHERE Category = '" + CategorySorter.Text + "' AND DateAdded >= #" & DateEnd.Text & "# AND DateAdded <= #" & DateStart.Text & "#"

If the date is 'Date' data type, then try converting the string to 'Date' type before you submit it. You can use CDate function to convert it.

Thanks, it is working now, i can now view the data according to category and date

Please mark as solved if it is working fine now, thank you.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.