Solved

error 3061 expected 1 MS/ACCESS 2013

Posted on 2015-02-06
6
249 Views
Last Modified: 2016-02-11
I am running a query using the following code:

Private Sub Form_Load()
   
       
    Dim coreDB As DAO.Database

    Dim T00_ControlTableSet As DAO.Recordset, _
        Q32_DocumentoSelectSet As DAO.Recordset
       
    Dim Q32_DocumentoSelectDef As QueryDef
   
    Dim strPath As String, _
        strCorename As String, _
        strUserID As String, _
        strUserName As String
   
    Dim DocID As Integer
   
    Set coreDB = CurrentDb
    Set T00_ControlTableSet = coreDB.OpenRecordset("T00_ControlTable", dbOpenDynaset)
   
    DocID = Forms![F91_LoggedUser]![Fld_F91_DocID_Current]
    Me.Fld_F19_BaseDocID = DocID

    strPath = Nz(Forms![F91_LoggedUser]![F91_DestinationPathCurrent], "")
    strCoreID = Format(Forms![F91_LoggedUser]![CoreID], "0000")
    strUserName = Forms![F91_LoggedUser]![Fld_F91_NomeCompletoUtilizador]
    strUserID = Format(Forms![F91_LoggedUser]![CurrentUserID], "0000")
   
    Call LogMe("F19 Documento \ Load ", "CORE :" & strCoreID & "\ User: " & strUserID & "\" & strUserName _
                & " \ DocID: " & Me.Fld_F19_BaseDocID & " \ Path: " & strPath)
   
    strCoreID = Forms![F91_LoggedUser]![CoreID]
               
    ' selecciona o registo correto
    strSetSQL = "SELECT T25_DocsIpeme.T25_BaseDocID AS Q32_DocID, "
    strSetSQL = strSetSQL & "T25_DocsIpeme.T25_Titulo AS Q32_Titulo, "
    strSetSQL = strSetSQL & "T25_DocsIpeme.Sumario AS Q32_Sumario, "
    strSetSQL = strSetSQL & "T25_DocsIpeme.T25_DestinationPathXML  AS Q32_PathXML, "
    strSetSQL = strSetSQL & "T25_DocsIpeme.T25_DestinationPath AS Q32_Path "
    strSetSQL = strSetSQL & "FROM T25_DocsIpeme "
    strSetSQL = strSetSQL & "WHERE (((T25_DocsIpeme.T25_BaseDocID)= " _
                            & Me.Fld_F19_BaseDocID & ")); "
    MsgBox strSetSQL

On Error GoTo ErrorHandle:
    Set Q32_DocumentoSelectDef = coreDB.QueryDefs("Q32_DocumentoSelect")
    Q32_DocumentoSelectDef.SQL = strSetSQL
    Set Q30_DocumentoSelectSet = coreDB.OpenRecordset("Q32_DocumentoSelect", dbOpenDynaset)
    With Q30_DocumentoSelectSet
        Me.Fld_F19_Sumario = .Q32_Sumario
        Me.Fld_F19_Titulo = .Q32_Titulo
        Forms![F91_LoggedUser]![F91_DestinationPathCurrent] = .Q32_Path
        strPath = .Q32_Path
        Call LogMe("F19 Documento \ Document Record ", "CORE :" & strCoreID & "\ User: " & strUserID & "\" & strUserName _
                    & " \ DocID: " & Me.Fld_F19_BaseDocID & " \ Path: " & strPath)
    End With
    Exit Sub



ErrorHandle:
   'Problema no Query (vazio?)
    strError = Err & ": " & Error(Err)
    Call LogMe("F19 Documento \ DblClick \ ERROR \ " & strError & " \ ", "CORE :" & strCoreID & "\ User: " & strUserID & "\" & strUserName _
                & " \ File: " & strPath)
    MsgBox "Problema no acesso ao Documento; Possívelmente não existe em arquivo"
    Resume Next

   
End Sub


the query runs into the 3061 error:

Screen-Shot-2015-02-06-at-15.18.11.png

I have checked the table names and they look alright!

Can anyone help?
0
Comment
Question by:jirdeaid
[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
  • 3
  • 2
6 Comments
 
LVL 57

Accepted Solution

by:
Jim Dettman (Microsoft MVP/ EE MVE) earned 500 total points
ID: 40593566
Statement look OK, so I would check carefully for a mis-spelled field or table name.

One way to check that:

1. Execute your code and get the SQL statement
2. Copy it
3. Open a new query in design view.
4. Switch to SQL view
5. Paste the SQL string.
6. Edit out any extra characters
7. Switch to design view.

 Any fields that don't match up will end up as an expression and if you execute, will prompt for them if it can't figure it out.

Jim.
0
 
LVL 57

Assisted Solution

by:Jim Dettman (Microsoft MVP/ EE MVE)
Jim Dettman (Microsoft MVP/ EE MVE) earned 500 total points
ID: 40593579
And BTW, if your just doing this in code, you can use a temp query def:

Set Q32_DocumentoSelectDef = coreDB.QueryDefs("")
Q32_DocumentoSelectDef.SQL = strSetSQL
Set Q30_DocumentoSelectSet = Q32_DocumentoSelectDef.OpenRecordset("Q32_DocumentoSelect", dbOpenDynaset)

Jim.
0
 
LVL 50

Expert Comment

by:Gustav Brock
ID: 40593581
I guess this should read:

    Set Q30_DocumentoSelectSet = coreDB.OpenRecordset("Q32_DocumentoSelectDef", dbOpenDynaset)

/gustav
0
Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

 

Author Closing Comment

by:jirdeaid
ID: 40593753
gee ... THANKS!
GHot the problem; actually it was a name of a column.... btw how do I accede/inspect to the  contents of a string in runtime without using the msgbox?
0
 
LVL 57
ID: 40593862
<<btw how do I accede/inspect to the  contents of a string in runtime without using the msgbox? >>

 Put a break point on the line and then hit F8 to step through it or place a stop right after.  Then you can either:

a. Hover over the variable and get the tool tip

b.  Bring up the debug window (Ctrl/G) and type:

?  <variable>

 so

?  strSQL

 I do it this way so you can see the full thing (don't always get that with a hover).

 ?  is short for Debug.Print

Jim.
0
 

Author Comment

by:jirdeaid
ID: 40594078
Thanks!
joao
0

Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

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

It’s the first day of March, the weather is starting to warm up and the excitement of the upcoming St. Patrick’s Day holiday can be felt throughout the world.
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.

697 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