[RISOLTO ]Errore di sintassi Istruzione Insert into

di il
4 risposte

[RISOLTO ]Errore di sintassi Istruzione Insert into

Ciao a tutti

ho la necessità di importare da Outlook gli appuntamenti successivi alla data odierna ed accodarli nel db

Riporto di seguito la routine che ho scritto:

Public Sub addApp()
Dim olApp As Outlook.Application 'dopo test girare a object
Dim nms As Outlook.NameSpace

Dim myItems As Outlook.Items
'singolo elemento trovato
Dim myItem As Object


Dim obj As String
Dim sstart As Date
Dim ssend As Date
Dim lct As String

Set olApp = New Outlook.Application 'CreateObject("Outlook.Application")
Set nms = olApp.GetNamespace("MAPI")

'eliminare gli appuntamenti importati da outlook successivi alla data corrente (flag Outlook: True)

DoCmd.OpenQuery "qryAg_remAppOut"

Set myItems = nms.GetDefaultFolder(olFolderCalendar).Items
myItems.Sort "[Start]", True

For Each myItem In myItems 

    obj = myItem.subject
    sstartdate = Format(myItem.Start, "dd/mm/yyyy")
    sstarthr = Format(myItem.Start, "hh:nn")
    ssendHr = Format(myItem.End, "hh:nn")
    lct = myItem.Location
    
    If Not myItem.Start < Date Then
    	'il planning creato in Access va di ora in ora - trovare la differenza in minuti tra ora fine e ora inizio
        diff = DateDiff("n", sstarthr, ssendHr)
        If diff Mod 60 <> 0 Then
            n_diff = diff Mod 60
            new_date_end = DateAdd("n", n_diff, myItem.End)
            ssendHr = Format(new_date_end, "hh:nn")
        End If
   
        new_diff = DateDiff("h", sstarthr, ssendHr)
        'verifico che non esista nessun appuntamento con l'idappuntamento nell'oggetto (app generati con Access 
        'ed esportati su Outlook) sia già presente
        If DCount("*", "tblappuntamenti", "cstr(idappuntamento)='" & Mid(obj, 16, InStr(16, obj, " ")) & "'") < 1 Then
            'verifico ora che non ci sia un appuntamento con lo stesso oggetto
            'con l'esecuzione della query precedente non ce ne dvorebbe essere neanche uno
            
            If DCount("*", "tblappuntamenti", "causale='" & obj & "' and utente_inserimento = " & DLookup("idoperatore", "tbloperatori", "operatore='" & Replace(Environ("username"), ".", " ") & "'")) < 1 Then
                'per ogni ora di differenza crea un record dell'appuntamento
                For i = 0 To new_diff
                    sSql = "INSERT INTO tblAppuntamenti (data_appuntamento, ora_appuntamento, luogo, causale, utente_inserimento) Values ('" & CVDate(sstartdate) & "', '" & sstart & "', '" & lct & "', '" & obj & "', " & DLookup("idoperatore", "tbloperatori", "operatore='" & Replace(Environ("username"), ".", " ") & "'")
                    Debug.Print sSql
                    DoCmd.RunSQL sSql   '----> si blocca qui
                Next i
            End If
        End If
    Else
        Exit For
    End If
Next

Set olApp = Nothing
Set nms = Nothing

End Sub

Di seguito, invece, la stringa da Finestra Immediata:

INSERT INTO tblAppuntamenti (data_appuntamento, ora_appuntamento, luogo, causale, utente_inserimento) Values ('12/01/2024', '14:00', 'Microsoft Teams Meeting', 'XXXXXXXXX', 1

I campi nella tabella “tblAppuntamenti” sono i seguenti: 

Ringrazio in anticipo chi mi potrà dedicare del tempo

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte