Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Access - VBA] incompatibilità di formato numerico nel db

    Ciao.

    Tramite un bottone devo far inserire un nuovo record nel mio db, ma ho 2 problemi.
    1. l'utente deve compilare tutti i campi per poter inserire il nuovo record nel db. ma pur avendo messo il controllo sui campi per vedere se sono pieni, mi da errore di debug.
    2. in uno di questi campi posso inserire un valore numerico intero o con la virgola. Inserendo il numero intero non ho problemi, mentre con la virgola mi da errore.
    Nella mia tabella del db ho dichiarato il campo in questione come Numerico a doppia precisione.
    Ecco il codice del mio bottone:
    codice:
    Private Sub btmInserisci_Click()
    Dim Agherbino As Database, qdf As QueryDef, strSQL As String
        Dim numberecord As Integer
        Dim idmateria As Integer
        
        idmateria = RicavaID.Ricava_IDmateria(Me.CmbMateria.Value)
            
        If IsNull(Me.cmbData.Value) And IsNull(Me.cmbQuadrimestre.Value) And IsNull(Me.cmbTipo.Value) And IsNull(Me.cmbVoto.Value) Then
            MsgBox "Compilare tutti i campi", vbCritical, "Informazioni mancanti!"
        Else
            Dim rec As Recordset
            Set Agherbino = DBEngine(0)(0)
            strSQL = "SELECT * FROM Valutazione_prova WHERE Matricola = " & Me.ElnStudenti.Column(0) & " AND IdDocente = " & Form_HomeDocente.txtID.Value & " AND IdMateria = " & idmateria & " AND Data_prova = '" & Me.cmbData.Value & "' AND Quadrimestre = " & Me.cmbQuadrimestre.Value & " AND Tipo = '" & Me.cmbTipo.Value & "' AND Voto = '" & Me.cmbVoto.Value & "'"
            Set qdf = Agherbino.CreateQueryDef("", strSQL)
            Set rec = qdf.OpenRecordset()
            numberecord = rec.RecordCount
            Set rec = Nothing
            Set qdf = Nothing
            
            If numberecord = 0 Then
        
                strSQL = "INSERT INTO Valutazione_prova(Matricola, IdDocente, IdMateria, Data_prova, Quadrimestre, Tipo, Voto) VALUES (" & Me.ElnStudenti.Column(0) & ", " & Form_HomeDocente.txtID.Value & ", " & idmateria & ", '" & Me.cmbData.Value & "', " & Me.cmbQuadrimestre.Value & ", '" & Me.cmbTipo.Value & "', '" & Me.cmbVoto.Value & "')"
                Agherbino.Execute strSQL
                strSQL = "SELECT * FROM Valutazione_prova WHERE Matricola = " & Me.ElnStudenti.Column(0) & " AND IdDocente = " & Form_HomeDocente.txtID.Value & " AND IdMateria = " & idmateria & " AND Data_prova = '" & Me.cmbData.Value & "' AND Quadrimestre = " & Me.cmbQuadrimestre.Value & " AND Tipo = '" & Me.cmbTipo.Value & "' AND Voto = '" & Me.cmbVoto.Value & "'"
                MsgBox "Voto aggiunto correttamente!"
            Else
                'se la query iniziale ha restituito per l'utente cercato un risultato allora il messaggio sarà
                MsgBox "Voto già inserito per lo studente selezionato e per la data scelta."
            End If
            
            'aggiorna la lista voti degli studenti
            Me.ElnVoti.Requery
            Agherbino.Close
        End If
    End Sub
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

  2. #2
    Ho risolto il primo punto.
    Ma il secondo non esce proprio. Anzi, mi correggo sul punto 2.
    in pratica non riesco a salvare il record inserito. mi da il seguente errore:
    "Tipi di dati non corrispondenti nell'espressione criterio"
    e il debug mi evidenzia l'errore in questo punto del codice:
    Set rec = qdf.OpenRecordset()

    sto impazzendo da stamattina..
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

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.