[RISOLTO] macro con select salta il primo record

Discussioni sulle caratteristiche di database
Rispondi
CarloIT
Messaggi: 35
Iscritto il: lunedì 12 settembre 2016, 17:40

[RISOLTO] macro con select salta il primo record

Messaggio da CarloIT »

Ciao,
ecco un nuovo problemino.
Il tutto si riduce ad estrema semplicità.
Eseguo una select su vista o tabella entro una macro.
Recupero i dati della select con le istruzioni:

Codice: Seleziona tutto

 while oResult.next
         IDnome = oResult.Columns.getByName("ID_NOME").int
         msgbox(IDnome)
Tuttavia in questa lista il primo record viene saltato.
Nell'esempio in allegato le 2 macro eseguono ciascuna una select su una tabella e su una vista.
Dal formulario, azionando le macro da pulsante, in output vengono restituiti tutti i record tranne il primo (ID = 1)
In allegato l'esempio.
Mi chiedo se non sia il next di

Codice: Seleziona tutto

oResult.next
che fa saltare il primo record.

Grazie come di consueto
Allegati
Esempio select.odb
(15.26 KiB) Scaricato 106 volte
Ultima modifica di CarloIT il mercoledì 9 novembre 2016, 10:06, modificato 1 volta in totale.
LibreOffice 5.1.4.2
Windows 7 Enterprise
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: macro con select salta il primo record

Messaggio da Gaetanopr »

Bisogna togliere If Then

Codice: Seleziona tutto

Sub SELECTVISTA (oEvent As Object) 'Button > Execute > event
   oForm = oEvent.Source.Model.Parent 'MainForm from Button
   oStatement = oForm.ActiveConnection.createStatement() 'Create an SQL statement object
   sSQL = "Select  ""ID_NOME"" from ""Vista Stati"" " 
   oResult = oStatement.executeQuery(sSQL)
       while oResult.next
         IDnome = oResult.Columns.getByName("ID_NOME").int
         msgbox(IDnome)
        wend
    
         oForm.reload() 
    
End Sub

Sub SELECTTABELLA (oEvent As Object) 'Button > Execute > event
   oForm = oEvent.Source.Model.Parent 'MainForm from Button
   oStatement = oForm.ActiveConnection.createStatement() 'Create an SQL statement object
   sSQL = "Select  ""ID_NOME"" from ""Tabella nomi"" " 
   oResult = oStatement.executeQuery(sSQL)
      	while oResult.next
         IDnome = oResult.Columns.getByName("ID_NOME").int
         msgbox(IDnome)
        wend
        oForm.reload() 
End Sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
CarloIT
Messaggi: 35
Iscritto il: lunedì 12 settembre 2016, 17:40

Re: macro con select salta il primo record

Messaggio da CarloIT »

Risolto.
Grazie 1000! :super:
LibreOffice 5.1.4.2
Windows 7 Enterprise
Rispondi