Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Alta en db acces con excel

Estas en el tema de Alta en db acces con excel en el foro de Bases de Datos General en Foros del Web. Hola, Quisiera saber si se puede y en caso afirmativo como se para agregar en una planilla de exel un macro, función o lo que ...
  #1 (permalink)  
Antiguo 09/09/2011, 06:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 63
Antigüedad: 13 años, 5 meses
Puntos: 3
Alta en db acces con excel

Hola,

Quisiera saber si se puede y en caso afirmativo como se para agregar en una planilla de exel un macro, función o lo que sea como para dar de alta en una base de datos de acces un registro con datos de la planilla de cálculo.

Muchas gracias por su tiempo y ayuda.

Saludos!
  #2 (permalink)  
Antiguo 28/09/2011, 09:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Alta en db acces con excel

Este código es para guardar los datos capturados en un formulario en una base de datos Access 2003, creo que te servira de idea.

Este es el código para guardar el registro (de turnos):

Código vb:
Ver original
  1. Private Sub GuardarBtn_Click()
  2. 'Verifica que el Label tenga la ruta de la base de datos (previamente se abre con un
  3. 'boton y un dialogo o como tu quieras ponerla)
  4.    If RutaLab.Caption = "" Then
  5.         MsgBox "Primero abra la base de datos"
  6.         Exit Sub
  7.     End If
  8.     'Declaro la conexion y el recordset
  9.    Dim BDCn As New ADODB.Connection
  10.     Dim BDRd As New ADODB.Recordset
  11.     BDCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaLab.Caption & _
  12.     ";Persist Security Info=False;Jet OLEDB:DataBase Password=***"
  13.     BDRd.Open "Consumo", BDCn, ADODB.CursorTypeEnum.adOpenKeyset, _
  14.     ADODB.LockTypeEnum.adLockOptimistic
  15.     'Aqui se guarda el registro en la BD de Access
  16.    If Not BDRd.BOF = True Then
  17.         BDRd.AddNew
  18.         'Objeto: DTPiker
  19.        BDRd.Update "Turno", TurnoDTPkr.Value
  20.         'Objeto: DTPiker
  21.        BDRd.Update "HoraDel", HoraDelDTPkr.Value
  22.         'Objeto: DTPiker
  23.        BDRd.Update "HoraAl", HoraAlDTPkr.Value
  24.         'Objeto: ComboBox
  25.        BDRd.Update "Despacho", DespachoCmb.Text
  26.     Else
  27.         BDRd.AddNew
  28.         'Objeto: DTPiker
  29.        BDRd.Update "Turno", TurnoDTPkr.Value
  30.         'Objeto: DTPiker
  31.        BDRd.Update "HoraDel", HoraDelDTPkr.Value
  32.         'Objeto: DTPiker
  33.        BDRd.Update "HoraAl", HoraAlDTPkr.Value
  34.         'Objeto: ComboBox
  35.        BDRd.Update "Despacho", DespachoCmb.Text
  36.     End If
  37.     'cierro la conexion y el recordset
  38.    BDRd.Close
  39.     BDCn.Close
  40.     'Aqui una funcion extra donde cargo los datos en una grilla la cual esta
  41.    'en el formulario de la plantilla de excel
  42.    Call CargarDatos(vsFxAyDatos, RutaLab.Caption)
  43. End Sub

Este otro código es para consultar y cargar los datos de la BD en una grilla:

Código vb:
Ver original
  1. Sub CargarDatos(vsFxAy As vsFlexArray, Ruta As String)
  2.     'Abro la conexion y el recordset
  3.    Dim BDCn As New ADODB.Connection
  4.     Dim BDRd As New ADODB.Recordset
  5.     Dim Columna As Integer
  6.     BDCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta & _
  7.     ";Persist Security Info=False;Jet OLEDB:DataBase Password=***"
  8.     'Abro la tabla
  9.    BDRd.Open "Consumo", BDCn, ADODB.CursorTypeEnum.adOpenDynamic, _
  10.     ADODB.LockTypeEnum.adLockReadOnly
  11.     With vsFxAy
  12.         .Rows = .FixedRows
  13.         'aqui cargo los datos en la grilla de un vsFlexArray
  14.        Do While Not BDRd.EOF
  15.             .Rows = .Rows + 1
  16.             .TextMatrix(.Rows - 1, 1) = BDRd.Fields("Turno").Value
  17.             .TextMatrix(.Rows - 1, 2) = Format(BDRd.Fields("HoraDel").Value, "hh:mm AM/PM")
  18.             .TextMatrix(.Rows - 1, 3) = Format(BDRd.Fields("HoraAl").Value, "hh:mm AM/PM")
  19.             .TextMatrix(.Rows - 1, 4) = BDRd.Fields("Despacho").Value
  20.             BDRd.MoveNext
  21.         Loop
  22.         'Cierro la conexion y el recordset
  23.        BDRd.Close
  24.         BDCn.Close
  25.         'ya cargados los datos hago que se autoajusten las columnas con datos
  26.        For Columna = 1 To .Cols - 1
  27.             .AutoSize (Columna)
  28.         Next Columna
  29.     End With
  30. End Sub

Espero te sirvan de base y saludos desde Cuernavaca Morelos, México

P.D. Para est necesitas referenciar la libreria Microsoft ActiveX Data Objects x.x Library en tu plantilla de excel.

Etiquetas: cambios, excel, access, altas, bases-de-datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:17.