2010-06-28 7 views
0

Je continue à obtenir une erreur de décalage pour cette ligne:VB Mismatch Erreur

UPDATE tblLunchTime SET [End] = '06/28/2010 9:41:34 AM' WHERE Start = '06/28/2010 9:41:31 AM' 

Est-ce que quelqu'un sait pourquoi?

EDIT: reste du code ajouté.

'Save end time in database. 
Dim strValuesQuery As String 

strValuesQuery = _ 
    "UPDATE tblLunchTime " & _ 
    "SET [End] = '" & Now & "' " & _ 
    "WHERE Start = '" & StartTime & "' " 

'Execute Query. 
DoCmd.RunSQL strValuesQuery 
+0

pouvez-vous poster le code qui est utilisé pour exécuter cette instruction .... –

+0

Le code a été ajouté. # – BioXhazard

Répondre

1

Je fini par ajouter le symbole dièse à ma variable afin de lui permettre d'être formaté de la manière nécessaire:

strValuesQuery = _ 
    "UPDATE tblLunchTime " & _ 
    "SET EndTime = #" & Now & "# " & _ 
    "WHERE StartTime = #" & StartTime & "#" 
+0

# est le délimiteur pour les dates dans Jet/ACE SQL. –

0

Êtes-vous exécutaient cette requête à SqlServer, oracle?

Est-ce la même langue côté client et côté serveur? Utilisation de la date Pour String et String à ce jour nécessite une conversion de format spécifique.

Pour Oracle: EndTime = to_date ('2010/01/05', 'aaaa/mm/jj)

On évite ainsi disparité linguistique.

J'utilise toujours des paramètres. "UPDATE tblLunchTime SET EndTime =? WHERE StartTime =?"

- Pour OleDb

Les paramètres évitent certaines erreurs et améliorent également les performances (Serveurs met en cache les curseurs).

+0

Avez-vous pris la peine de lire les tags? –

Questions connexes