Access - Fecha existente

 
Vista:
sin imagen de perfil
Val: 37
Ha disminuido su posición en 17 puestos en Access (en relación al último mes)
Gráfica de Access

Fecha existente

Publicado por Cristian (42 intervenciones) el 30/05/2017 01:59:51
Hola tengo un formulario que agrega la fecha en una tabla, lo que puse en el evento antes de actualizar fue

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim dia As Variant
Dim Consulta As String
If (IsNull(DLookup("[Fecha]", "Detalle_Cajas", "[Fecha]='" & Me.FechaTxt.Value) & "'")) Then
If dia > 0 Then
MsgBox "Ya se ha cargado esta fecha", vbOKOnly + vbInformation, "Aviso"
Cancel = True
Else
Consulta = "Consulta_Act_Fecha_Caja"
DoCmd.SetWarnings False
DoCmd.OpenQuery Consulta, acViewNormal, acEdit
DoCmd.SetWarnings True
Exit Sub
End If
End Sub

Lo que quiero que haga es que si la fecha esta emita un mensaje ya se ha cargado la fecha, sino ejecuta una consulta de anexar que toma la fecha del cuadro de texto y la agrega.
Pero me da error.

Podran decirme en que me estoy equivocando?
El campo fecha de la tabla tiene formato fecha.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Fecha existente

Publicado por Anonimo (3316 intervenciones) el 30/05/2017 03:19:07
Dimensionas una variable (dia As Variant) a la que no se le asigna valor y sin embargo se toma como ¿referente en un IF ?

Que la consulta abierta en modo edicion cumpla su cometido, dependera entre otros, de la SQL que intente ejecutar (y que se desconoce)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fecha existente

Publicado por jose (830 intervenciones) el 31/05/2017 20:14:28
sin entrar a valorar nada más veo que pudiera existir un problema de sintaxis

"[Fecha]=#" & format(Me.FechaTxt.Value, "MM/DD/YYYY") ) & "#")) Then

si el campo de la tabla es date la fecha se pone entre #fecha# y despues el formato americano de fecha mes/dia/año
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fecha existente

Publicado por jose (830 intervenciones) el 31/05/2017 21:04:32
POR SI A ALGUIEN LE SIRVE .
CUAL USAR ? LO QUE MEJOR CONVENGA .
PERO ES BUENO SABER OTRAS ALTERNATIVAS

Funciones agregadas de dominio, DCont (DCount) , Dbúsq (Dlookup) ,Dprim ,Dsum, (Dfirst) y Dúltimo (Dlast)mDMín (Dmin) y Dmáx

se usan para sacar datos sencillos de las tablas

otra forma aunque en principio parece mas extensa pero tiene muchas mas aplicaciones y se pueden hacer muchas mas cosas es mediante ado y el lenguaje de busqueda estructurado SQL
---------------------------------
otra forma de buscar los datos con ADO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'Dim rs As Recordset
'Dim CON As Connection
 
 
Set rs = CreateObject("ADODB.RecordSet")
Set CON = Application.CurrentProject.Connection
 
C10 =   "SELECT Fecha, otrocampo1 ,otrocampo2
C10 = C10 & "  FROM [Detalle_Cajas]"

C10 = C10 & " WHERE ("
C10 = C10 & "[Detalle_Cajas].[Fecha]=#" & format(Me.FechaTxt.Value, "MM/DD/YYYY")  & "#"
C10 = C10 & " ) "
 
 
 
'rem abrimos el recordset
rs.Open C10, CON
 
 
If rs.EOF = True or  If rs.BOF = true  then
 
'hacer cuando no existe esa fecha EN NIngun registro seleccionado
 
else
' hacer cuando la fecha existe 
 
 
END IF


NOTA : PARA recorres el recordset
rs.move first - ir al primero
rs.move.last - ir al ultimo
rs.move.next - ir al siguiiente
rs.move.previous - ir al anterior

los datos estaran en
fecha1= RS.Fields("Fecha").Value
dato1= RS.Fields("otrodato1).Value
dato2= RS.Fields("otrodato2).Value

otra forma y el el orden en que se ponen en SELECT
fecha1= RS.Fields(0).Value
dato1= RS.Fields1).Value
dato2= RS.Fields(2).Value
--------------
con este procedimiento (SELECT)se pueden hacer multiples y complejas consultas , incluso agrupadas,
además podemos insertar datos con INSERT , borrar con DELETE , CREATE, TABLE crea tablas . UPDATE actualiza datos
http://www.1keydata.com/es/sql/sql-select.php


http://www.lawebdelprogramador.com/cursos/archivos/ManualPracticoSQL.pdf
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fecha existente

Publicado por Anonimo (3316 intervenciones) el 01/06/2017 05:48:55
Si todo consiste en conocer otros metodos (y a veces mejores), para las fechas propongo este metodo que funciona en cualquier configuracion regional:
En base a esto:
"[Fecha]=#" & format(Me.FechaTxt.Value, "MM/DD/YYYY") ) & "#")) Then

Esto:
Si se parte de un texto (clasica toma de datos independiente):
[Fecha]= " & CDbl(CDate(Me.FechaTxt)) Then

Y si el campo ya es una 'fecha Access'
[Fecha]= " & CDbl(Me.FechaTxt) Then
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar