Access - aGREGAR FECHA DE HOY A COLUMNA

   
Vista:

aGREGAR FECHA DE HOY A COLUMNA

Publicado por Alfredo (10 intervenciones) el 11/07/2012 17:32:29
Hola buen dia, Recientemente he empezado a trabajar con Access y conforme voy avanzando se me han presentado algunos conflictos, este último consiste en poner la fecha de hoy como titulo de una columna que agrego automaticamente al ejecutar un codigo de SQL, ya intente con el siguiente código:


1
ALTER TABLE [Historico Consumo MP] ADD Column  Date()  CHAR Variant;



Pero me dice que hay un error de sintaxis, ojala y me pudiesen ayudar, saludos a todos.
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

aGREGAR FECHA DE HOY A COLUMNA

Publicado por Rubén (47 intervenciones) el 12/07/2012 11:53:55
¿Por qué quieres hacer una columna en la que el nombre sea la fecha del día?
Es más lógico que crees un campo "fecha", con un nombre fijo, dentro del que cubras la fecha que toque.
Si luego necesitas ver los resultados agrupados por fechas, siempre puedes hacer una consulta de referencias cruzadas, en la que los encabezados de columna sean, precisamente, las fechas.
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
Imágen de perfil de Neckkito

aGREGAR FECHA DE HOY A COLUMNA

Publicado por Neckkito (1104 intervenciones) el 13/07/2012 19:33:16
Hola!

El problema se produce cuando la SQL detecta un valor no entrecomillado con formato de fecha. Ergo no lo interpreta como nombre de campo sino como fecha, y por eso te da error.

De todas maneras, y sin saber para qué lo necesitas, estoy de acuerdo con el comentario de Alfredo, en general.

Intenta lo siguiente:

...
Sub añade()
Dim miSql As String
Dim nomCol As String
nomCol = Date
miSql = "ALTER TABLE Tabla1 ADD COLUMN '" & nomCol & "' CHAR"
DoCmd.RunSQL miSql
End Sub
...

Al poner nomCol entre comillas simples la SQL ya tiene claro que no es una fecha, sino un valor string, y como tal te lo escribe como nombre de columna (aunque te salga con las propias comillas simples).

Un saludo,

Neckkito
(... http://neckkito.eu5.org ... // ... http://neckkito.16mb.com/Access ...)
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

aGREGAR FECHA DE HOY A COLUMNA

Publicado por alfredo (10 intervenciones) el 16/07/2012 16:28:58
Hola
les agradesco su ayuda infinitamente, solo una pregunta mas, no soy muy bueno en visual basic, y pues mi pregunta es si el codigo o la estructura que me dices Neckkito debo de insertarla en un modulo o e puede insertar dentro de SQL, ya que estoy trabajando con access, y pues tambien para preguntarte si por favor me podrias explicar un poco cada parte de lo que publicaste aqui arribita.
De antemano mil gracias.
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
Imágen de perfil de Neckkito

aGREGAR FECHA DE HOY A COLUMNA

Publicado por Neckkito (1104 intervenciones) el 16/07/2012 20:58:22
Hola!
Puedes hacer dos cosas:
La primera -> crearte un módulo estándard e insertar el código en dicho módulo. Tras eso pulsas F5 y la cosa te debería funcionar sin problemas. Abres tu tabla y compruebas que se te ha insertado la columna.

La segunda -> si necesitas realizar la operación de forma recurrente lo más cómodo es crearte un formulario y en él insertar un botón de comando. En el evento "Al hacer click" de dicho botón le añades el código que te escribí, sin la primera línea ni la última. Así cada vez que hagas click sobre ese botón con el formulario en vista formulario se te añadirá un campo a la tabla.

Como el código es un poco "frío" si quieres puedes añadirle un msgbox para tener la seguridad de que todo ha ido bien. El código quedaría entonces así:

...
Sub añade()
Dim miSql As String
Dim nomCol As String
nomCol = Date
miSql = "ALTER TABLE Tabla1 ADD COLUMN '" & nomCol & "' CHAR"
DoCmd.RunSQL miSql
msgbox "Se ha creado el nuevo campo correctamente",vbInformation, "OK"
End Sub
...

En cuanto a la explicacion es muy sencilla:
.- Los Dim sirven para definir las variables que voy a utilizar
.- nomCol = Date -> La variable nomCol coge el valor de la fecha del sistema
.- miSql = "ALTER TABLE Tabla1 ADD COLUMN '" & nomCol & "' CHAR" -> Defino la sentencia SQL y la asigno a la variable miSql. Como el nombre del campo me viene recogido en una variable lo que hago es construir una cadena primero ( "ALTER TABLE Tabla1 ADD COLUMN '"), le concateno el valor de nomCol y acabo la expresión de cadena con una segunda parte ("' CHAR"). Como ves, la concatenación se realiza a través de los ampersand (&).
.- Finalmente, le digo al código que ejecute la SQL, que viene recogida en la variable miSql, a través de DoCmd.RunSQL miSql

Y eso es todo

Espero haberte clarificado "las ideas"

Un saludo,

Neckkito
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

aGREGAR FECHA DE HOY A COLUMNA

Publicado por alfredo (10 intervenciones) el 17/07/2012 18:27:24
Hola, buen dia, si claro que si me clarificaste las ideas Neckkito, de hecho con el codigo que me enviaste pue hacer no solo insertar la fecha sino tambien crrer otras sentencias de SQL de hecho tengo estas dos ya trabajando
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
añade()
Dim miSql As String
Dim nomCol As String
nomCol = Date
miSql = "ALTER TABLE [Histórico OH  ] ADD COLUMN '" & nomCol & "' CHAR"
DoCmd.RunSQL miSql
 
    DoCmd.OpenTable "Histórico OH", acViewNormal, acEdit
'inserta()
Dim miSql As String
Dim nomCol As String
nomCol = Date
miSql = " UPDATE [OH Actual] LEFT JOIN [Histórico OH] ON [OH Actual].Código=[Histórico OH].Código " & _
        "SET [Histórico OH].'" & nomCol & "' = [OH Actual].[Existencia]" & _
        "WHERE [OH Actual].Subinventario=[Histórico OH].Subinventario;"
 
DoCmd.RunSQL miSql

una ultima pregunta, puedo hacer que esas dos centencias puedan funcionar con un solo boton???
Gracias por tu ayuda, te agradesco infinitamente.
Saludos


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

aGREGAR FECHA DE HOY A COLUMNA

Publicado por alfredo (10 intervenciones) el 17/07/2012 18:32:40
Perdon, en el comentario anterior capture mal las sentencias, esto es lo que tengo
1
2
3
4
5
6
7
8
Sub añade()
Dim miSql As String
Dim nomCol As String
nomCol = Date
miSql = "ALTER TABLE [Histórico OH  ] ADD COLUMN '" & nomCol & "' CHAR"
DoCmd.RunSQL miSql
 
    DoCmd.OpenTable "Histórico OH", acViewNormal, acEdit

y
1
2
3
4
5
6
7
8
9
Sub inserta()
Dim miSql As String
Dim nomCol As String
nomCol = Date
miSql = " UPDATE [OH Actual] LEFT JOIN [Histórico OH] ON [OH Actual].Código=[Histórico OH].Código " & _
        "SET [Histórico OH].'" & nomCol & "' = [OH Actual].[Existencia]" & _
        "WHERE [OH Actual].Subinventario=[Histórico OH].Subinventario;"
 
DoCmd.RunSQL miSql

Saludos
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

aGREGAR FECHA DE HOY A COLUMNA

Publicado por Alfredo (10 intervenciones) el 17/07/2012 19:02:33
Hola Mil gracias por tu ayuda necckito, aprendi que cuando se experimenta se consiguen resultados increibles, ya pude resolver mi duda anterior, de poner dos sentencias en un mismo botón.
Mil Gracias, Saludos.
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