Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    115

    [VB6] Errore nella Query Insert INTO

    codice:
    Set DATAB = Application.CurrentDb
    Set QUERY1 = DATAB.CreateQueryDef("")
    With QUERY1
        .Connect = DATAB.Connect
        .Execute ("INSERT INTO PROTOCOLLO (DATA PROT, N_PROT, INVIO-RICEZ, TRAMITE, OGGETTO, CODICE, DENOMINAZIONE, CHIAVE) 
         values ('" & Me.DATA_PROT.Value & "', " & Me.N_PROT.Value & ", '" & Me.INVIO_RICEZ.Value & "', '" & Me.TRAMITE.Value & "', '" & Me.OGGETTO.Value & "', '" & Me.CODICE.Value & "', '" & Me.DENOMINAZIONE.Value & "', '" & Me.CHIAVE.Value & "')")
    La struttura della Tabella Protocollo Access è la seguente

    ID -> Contatore
    Data Prot -> Data breve
    N_Prot -> Numerico
    INVIO_RICZ -> Testo
    TRAMITE -> Testo
    OGETTO -> Testo
    CODICE -> Testo
    DENOMINAZIONE -> Testo
    CHIAVE -> Testo

    Se uso Debug.Print per vedere la query dopo avergli passato i valori nella maschera


    codice:
    INSERT INTO PROTOCOLLO (DATA PROT, N_PROT, INVIO-RICEZ, TRAMITE, OGGETTO, CODICE, DENOMINAZIONE, CHIAVE) values (28/12/2010, 20094514, 'Entrata', 'Lettera A/R', 'asdf', 'FI0002', 'Accademia del Giglio', '2')
    l'errore è: Errore di conversione del tipo di Dati.

    how to fix?

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Scusa, hai indicato VB6 ma non è VB6!
    Ad esempio, Application.CurrentDb
    non esiste in VB6.

    Le istruzioni usate mi sembrano più dell'ambiente Microsoft Access.

    Puoi specificare meglio?

    In ogni caso il problema è sicuramente la data, che nelle query eseguite in un database ACCESS (MDB) deve sempre essere indicata nel formato americano MM/DD/YYYY e racchiusa tra cancelletti:

    codice:
    Data Prot = "#" & Format("MM/DD/YYYY", "28/12/2010") & "#"
    Comunque nelle query di INSERT/UPDATE è raccomandato l'uso dei parametri (ma io uso ADO, e dato che usi DAO non so consigliarti al riguardo).


  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    115
    Chiedo venia, in effetti è stato sviluppato utilizzando access 2002 e con la funzione maschera è stata creata un interfaccia.

    xo' se faccio info nel codice visual basic che gestisce la maschera mi dice Visual Basic 6.3.

    ho provato a fare come hai consigliato però forse non ho capito come dovrei modificare
    codice:
    '" & Me.DATA_PROT.Value & "'

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Virtuoid
    xo' se faccio info nel codice visual basic che gestisce la maschera mi dice Visual Basic 6.3.
    OK, ma quello indica la versione di VBA (Visual Basic for Applications) che è molto diverso dall'usare il VB6 che è invece un linguaggio di progettazione a sé stante (tra l'altro non esiste la versione 6.3 di VB6).
    Quindi nei prossimi post devi indicare [VBA], allora diventa chiaro il riferimento alle applicazioni di Office

    Originariamente inviato da Virtuoid
    ho provato a fare come hai consigliato però forse non ho capito come dovrei modificare
    Il mio era un semplice esempio di come va formattata la data.
    Comunque sostituisci il tuo:
    codice:
    '" & Me.DATA_PROT.Value & "'
    con questo:

    codice:
    "#" & Format("MM/DD/YYYY", Me.DATA_PROT.Value) & "#"



  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    115
    Ti ringrazio molto, purtroppo non ho esperienza di questo framework devo solo riuscire a fare andare questa query di un programma già scritto da altri, non ero a conoscenza della distinzione in VBA fino a stamane

    tornando al problema ho sostituito
    codice:
      
     .Execute ("INSERT INTO PROTOCOLLO (DATA PROT, N_PROT, INVIO-RICEZ, TRAMITE, OGGETTO, CODICE, DENOMINAZIONE, CHIAVE) values ("#" & Format("MM/DD/YYYY", Me.DATA_PROT.Value) & "#", " & Me.N_PROT.Value & ", '" & Me.INVIO_RICEZ.Value & "', '" & Me.TRAMITE.Value & "', '" & Me.OGGETTO.Value & "', '" & Me.CODICE.Value & "', '" & Me.DENOMINAZIONE.Value & "', '" & Me.CHIAVE.Value & "')")
    ma mi diventa rossa a riga e mi appare un messaggio

    codice:
    Errore di compilazione:
    
    
    Errore di sintassi
    hmm.. Che può essere?

    Perdonami ma sono un n00b totale

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    115
    Anche se modifico il campo da Data Breve a Testo nella struttura della tabella il problema rimane -,- quindi non è nemmeno un problema di formato o sbaglio

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    115
    Ho risolto rifacendo del tutto la maschera, ora funziona tutto, grazie mille!

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Virtuoid
    Ho risolto rifacendo del tutto la maschera, ora funziona tutto, grazie mille!
    Scusa, solo stasera mi sono connesso al forum.

    Vedo che hai risolto.
    Bene


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.