Solved

error 3061 expected 1 MS/ACCESS 2013

Posted on 2015-02-06
6
246 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
  • 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 49

Expert Comment

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

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

/gustav
0
U.S. Department of Agriculture and Acronis Access

With the new era of mobile computing, smartphones and tablets, wireless communications and cloud services, the USDA sought to take advantage of a mobilized workforce and the blurring lines between personal and corporate computing resources.

 

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

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

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

The first two articles in this short series — Using a Criteria Form to Filter Records (http://www.experts-exchange.com/A_6069.html) and Building a Custom Filter (http://www.experts-exchange.com/A_6070.html) — discuss in some detail how a form can be…
When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

776 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