Foros del Web » Soporte técnico » Ofimática »

[SOLUCIONADO] Ejecutar sentencia insert en VBA Excel

Estas en el tema de Ejecutar sentencia insert en VBA Excel en el foro de Ofimática en Foros del Web. Hola, No sabia donde meter este tema pero necesito vuestra ayuda. No se como ejectura la sentencia insert que tengo en vba excel. Escribo lo ...
  #1 (permalink)  
Antiguo 10/06/2013, 07:39
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 7 meses
Puntos: 7
Ejecutar sentencia insert en VBA Excel

Hola,

No sabia donde meter este tema pero necesito vuestra ayuda.

No se como ejectura la sentencia insert que tengo en vba excel. Escribo lo que tengo para que me echéis una mano.

Código vba Excel:
Ver original
  1. Public conn As New ADODB.Connection
  2. Public tabla As New ADODB.Recordset
  3. Public comando As New ADODB.Command
  4.  
  5. Private Sub Guardar_Click()
  6.     ' Leer datos de las celdas necesarias de la hoja Empleados hydro
  7.    
  8.     Dim fila, columna, cont As Integer
  9.     Dim codEmpleado, operario, codSeccionRRHH, di, linea, sublinea, seccion, seccionDes As String
  10.     fila = Cells(Rows.Count, 4).End(xlUp).Row 'cuenta la cantidad de filas que tiene el excel
  11.    
  12.     conn.Open "DSN=horas"
  13.     If conn.State = 1 Then
  14.         'MsgBox "conexion"
  15.         'MsgBox fila
  16.         For cont = 4 To fila
  17.             codEmpleado = Cells(cont, 4).Value
  18.             operario = Cells(cont, 5).Value
  19.             codSeccionRRHH = Cells(cont, 6).Value
  20.             di = Cells(cont, 8).Value
  21.             linea = Cells(cont, 9).Value
  22.             sublinea = Cells(cont, 10).Value
  23.             seccion = Cells(cont, 11).Value
  24.             seccionDes = Cells(cont, 12).Value
  25.             Sql = "INSERT INTO horas.operario(CodEmpleado, Operario, CodSeccionRRHH, DI, Linea, SubLinea, Seccion, SeccionDes)" & _
  26.                     " VALUES(' " & codEmpleado & " ',' " & operario & " ',' " & codSeccionRRHH & " ',' " & di & " ',' " & linea & " '" & _
  27.                     ",' " & sublinea & " ',' " & seccion & " ',' " & seccionDes & " ')"
  28.  
  29.              [B]'NECESITO SABER COMO EJECUTAR LA QUERY DEL INSERT[/B]
  30.            
  31.         Next
  32.         conn.Close
  33.     Else
  34.         MsgBox "error en la conexion"
  35.     End If
  36. End Sub

__________________
Gracias por todo;

Un saludo
  #2 (permalink)  
Antiguo 11/06/2013, 02:03
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 7 meses
Puntos: 7
Respuesta: Ejecutar sentencia insert en VBA Excel

Ya lo he solucionado.
Pongo el código aquí por si a alguien le sirve de ayuda.
Código vba excel:
Ver original
  1. Public conn As New ADODB.Connection
  2. Public rst As New ADODB.Recordset
  3. Public cmd As New ADODB.Command
  4.  
  5. Private Sub Guardar_Click()
  6.     ' Leer datos de las celdas necesarias de la hoja Empleados hydro
  7.    
  8.     Dim fila, columna, cont As Integer
  9.     Dim codEmpleado, operario, codSeccionRRHH, di, linea, sublinea, seccion, seccionDes As String
  10.     Dim sqlstr1, sqlstr2 As String
  11.    
  12.     fila = Cells(Rows.Count, 4).End(xlUp).Row 'cuenta la cantidad de filas que tiene el excel
  13.    
  14.     conn.Open "DSN=horas"
  15.     If conn.State = 1 Then
  16.  
  17.         'Eliminar todos los datos que hay introducidos en la tabla horas.operario
  18.         sqlstr1 = "DELETE FROM horas.operario"
  19.         conn.Execute sqlstr1
  20.          
  21.         For cont = 4 To fila
  22.             codEmpleado = Cells(cont, 4).Value
  23.             operario = Cells(cont, 5).Value
  24.             codSeccionRRHH = Cells(cont, 6).Value
  25.             di = Cells(cont, 8).Value
  26.             linea = Cells(cont, 9).Value
  27.             sublinea = Cells(cont, 10).Value
  28.             seccion = Cells(cont, 11).Value
  29.             seccionDes = Cells(cont, 12).Value
  30.            
  31.             sqlstr2 = "INSERT INTO horas.operario(CodEmpleado, Operario, CodSeccionRRHH, DI, Linea, SubLinea, Seccion, SeccionDes)" & _
  32.                 " VALUES(' " & codEmpleado & " ',' " & operario & " ',' " & codSeccionRRHH & " ',' " & di & " ',' " & linea & " '" & _
  33.                 ",' " & sublinea & " ',' " & seccion & " ',' " & seccionDes & " ')"
  34.             conn.Execute sqlstr2
  35.         Next cont
  36.         MsgBox "Datos introducidos"
  37.         ' Close connections
  38.         On Error Resume Next
  39.         rst.Close
  40.         Set rst = Nothing
  41.         conn.Close
  42.         Set conn = Nothing
  43.         On Error GoTo 0
  44.     Else
  45.         MsgBox "error en la conexion"
  46.     End If
  47. End Sub

Saludos,
__________________
Gracias por todo;

Un saludo

Etiquetas: adodb, dato, excel, insert, sentencia, vba
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 07:59.