Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

error type mismatch when loading vb listbox1

Posted on 2014-01-19
19
Medium Priority
?
494 Views
Last Modified: 2014-01-20
Folks

Need assistance, when I load a listbox I receive a error 13 type mismatch, can anyone assist, I guess it should be something to do with what field type I am loading, need help

below is my sample code


  Set oRsOracle = oConOracle.Execute(strSQL)

'Then add that to the list box

'ListBox1.AddItem ListBoxText
 
  Do Until oRsOracle.EOF
    ListBox1.AddItem oRsOracle.Fields(4).Value
    oRsOracle.MoveNext
  Loop
 
  oRsOracle.Close
0
Comment
Question by:rutgermons
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 7
  • 4
19 Comments
 
LVL 49

Expert Comment

by:Martin Liss
ID: 39792222
Have you set the RowSource  type of the listbox to value list?
0
 

Author Comment

by:rutgermons
ID: 39792270
hi Martin , nope! the data comes from oracle , I have set the variable strSQL


Dim strSQL As String

strSQL = "SELECT *FROM QUERY WHERE APP ='vehicles'"
   
    MsgBox (strSQL)
   
    Set oRsOracle = oConOracle.Execute(strSQL)

how and where do I set the rowsource type as you suggest?

keen for your guidance
0
 
LVL 49

Expert Comment

by:Martin Liss
ID: 39792329
It's a property of the Listbox.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 

Author Comment

by:rutgermons
ID: 39792468
Can't find it, it doesnt seem(hope i am wrong) an option on listboxes in my excel sheet (excel 2010)
0
 
LVL 49

Expert Comment

by:Martin Liss
ID: 39792513
Can you attach your workbook or a demo workbook that illustrates the problem?
0
 

Author Comment

by:rutgermons
ID: 39792550
see attached, when I call the button to download the list and populate the listbox I get the problem
SCHEDULER.xlsm
0
 
LVL 49

Expert Comment

by:Martin Liss
ID: 39792570
I can't connect to your oracle database so I can only suggest that you try changing this

Dim oConOracle, oRsOracle

to

Dim oConOracle As New ADODB.Connection
Dim oRsOracle As New ADODB.Recordset
0
 
LVL 43

Expert Comment

by:Rob
ID: 39792853
I believe the listbox is expecting a String data type and whatever is coming back from your database isn't so I suggest converting to a string:

 Do Until oRsOracle.EOF
    ListBox1.AddItem CStr(oRsOracle.Fields(4).Value)
    oRsOracle.MoveNext
  Loop
0
 

Author Comment

by:rutgermons
ID: 39792887
No luck tagit, so the data i have are where clauses used for sql queries

let's say SELECT *FROM QUERY WHERE APP, the query object field I am using is the actual where clause itself

where "field 1 = 'car' and startdate ='2014-01-12'", im wondering if the varying where clause values are causing the problem
0
 
LVL 43

Expert Comment

by:Rob
ID: 39792901
It may be, that was my first thought as well but just had to rule out the basic type conversion first.


let's say SELECT *FROM QUERY WHERE APP, the query object field I am using is the actual where clause itself

this I don't understand.  Are QUERY and APP variables in Oracle or VBA?

Where do you get where "field 1 = 'car' and startdate ='2014-01-12'" from?
0
 

Author Comment

by:rutgermons
ID: 39792994
Tagit, those are variables in Oracle

but the field that I am displaying is a field/column called "clause" in the query table and this contains the actual where clauses
0
 
LVL 43

Expert Comment

by:Rob
ID: 39793002
Ok then I would start by debugging what is being returned by the query:

Do Until oRsOracle.EOF
    debug.print oRsOracle.Fields(4).Value
    'ListBox1.AddItem oRsOracle.Fields(4).Value
    oRsOracle.MoveNext
  Loop

Note i've commented out the AddItem line.  Check the "Immediate Window" in the VBA editor for the output
0
 

Author Comment

by:rutgermons
ID: 39793023
ok, so I get to see all the records in the immediate window, not something obvious but is there a imit to the amount or rows possible in a list box or field lenghts?
0
 
LVL 43

Expert Comment

by:Rob
ID: 39793037
(EDIT) Can you post what was in the debug Window?  Getting an idea of the data may help
0
 
LVL 43

Accepted Solution

by:
Rob earned 2000 total points
ID: 39793188
This test works fine in your workbook.  I've truncated the data, which you might want to try

Sub listTest()
    ListBox1.Clear
    Dim x As Variant
    For Each x In Array("password", "username", "myfields", "myvalues", "january")
        ListBox1.AddItem Left(x, 5)
    Next x
    
End Sub

Open in new window


So I suspect it will be due to some of the data coming in so try this:

Do Until oRsOracle.EOF
    debug.print oRsOracle.Fields(4).Value
    ListBox1.AddItem Left(oRsOracle.Fields(4).Value,10)
    oRsOracle.MoveNext
  Loop

Open in new window

0
 

Author Comment

by:rutgermons
ID: 39793555
wow, that works like a charm!

what exactly does this fix do? is this something to do with dodgy characters between lines (for lack of a better phrase)?

thanks Rob! your efforts are really appreciated
0
 
LVL 43

Expert Comment

by:Rob
ID: 39793571
no worries.  all i did was trunacate the response.  You drew me to that conclusion and from your comments I suspected that some of the data is quite large coming back.  Each record in a listbox might be limited to 255 characters but thats just a guess :)
0
 

Author Closing Comment

by:rutgermons
ID: 39793577
yep! the where clauses are longwinded and many)  thanks a stack
0
 
LVL 43

Expert Comment

by:Rob
ID: 39793580
Actually it could be dodgy chars because I only included the first 10 characters of each record.  Going to be really hard to know unless I can see the full content of each record via the immediate window.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article descibes how to create a connection between Excel and SAP and how to move data from Excel to SAP or the other way around.
You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

618 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question