Saltar al contenido

Ayuda con macro generar-sentencias-sql-insert-into-en-excel


edi

Recommended Posts

publicado

Saludos a todos soy nuevo en esto de las macro , requiero ayuda de la macro que esta puesta en el link

del señor : Sergio Alejandro Campos

la ayuda o quizas duda es que me sale en el ejemplo

asi :

INSERT INTO Tabla () VALUES ('Nombre1', 'Telefono1', 26,'Direccion1', 'Puesto1')

deberia ser asi

INSERT INTO myTabla VALUES ('Nombre1', 'Telefono1', 26,'Direccion1', 'Puesto1')

sin los parentises antes de values o no se usar disculpen

muchas gracias

EXCELeINFO – Excel vba e información - Generar sentencias SQL INSERT INTO en Excel

publicado

hola edi te comento es correcto lo de sergio

INSERT INTO Tabla ( nombre de los campos de la tabla aqui) VALUES ('Nombre1', 'Telefono1', 26,'Direccion1', 'Puesto1')[/CODE]

ejemplo

[CODE]
Public Function sqlGrabPersonas(Nom As String, DIR As String, EDAD As Integer, TFN As String, MPA_ID As Integer)
sqlGrabPersonas = _
"Insert Into MDP(MDP_NOM, MDP_DIR, MDP_EDAD, MDP_TFN, MDP_MPA_ID) VALUES " & _
"('" & Nom & "', '" & DIR & "', " & EDAD & ", '" & TFN & "', " & MPA_ID & ")"

End Function

[CODE]
saludos[/CODE]

publicado

gracias ahora tengo otro problema , esta macro solo maneja 5 columnas y nesecito 10 pero no entiendo eso de las comas me da miedo

publicado
Código de la macro

Option Explicit
'---------------------------------------------------------------------------------------
' Module : Módulo1
' Author : MVP Sergio Alejandro Campos
' Date : 23/06/2013
' Purpose : Generar Query de SQL INSERT INTO
' Website : http://blogs.itpro.es/exceleinfo
'---------------------------------------------------------------------------------------
'
Sub GenerarInsertInto()
'Definiendo variables
Dim Filas As Integer
Dim Cuenta As Integer
Dim Rango As String
Dim Celda As Range
Dim Valor, Valor1, Valor2 As String
Dim Largo As Integer
Dim RowCursor As Integer
Dim strSQL As String
Dim Mensaje As String
'
On Error GoTo Errores
Filas = Application.WorksheetFunction.CountA(Range("A:A"))
Cuenta = 1
Rango = Application.Transpose(ActiveCell.CurrentRegion.Resize(1).Select)
'
'Extrayendo encabezados
For Each Celda In Selection
Valor = Celda.Value
Valor1 = Valor1 & Valor & ", "
Next Celda
Largo = Len(Valor1)
Valor2 = Left(Valor1, Largo - 2)
'
'Generando Query
With ActiveWorkbook.Sheets("Datos")
For RowCursor = 2 To Filas
strSQL = "INSERT INTO Tabla (" & Valor2 & ") " & _
"VALUES ('" & .Cells(RowCursor, 1) & "', " & _
"'" & .Cells(RowCursor, 2) & "', " & _
.Cells(RowCursor, 3) & "," & _
"'" & .Cells(RowCursor, 4) & "', " & _
"'" & .Cells(RowCursor, 5) & "')"
Sheets("Query INSERT INTO").Range("A" & Cuenta).Value = strSQL
Cuenta = Cuenta + 1
Next
End With
'
Mensaje = MsgBox("Query generada. Deseas ver el código generado?", vbQuestion + vbYesNo)
If Mensaje = vbYes Then Sheets("Query INSERT INTO").Activate
'
'Manejo de errores
Exit Sub
Errores:
MsgBox "Error: " & Err.Description, vbExclamation, "EXCELeINFO"
End Sub[/CODE]

publicado

hola ya me refiero a el tu codigo cual es tu duda en concreta? donde te marca error? ya tienes tu bd ? referencias?

cuales son los campos de tu tabla?

donde esta tu informacion a procesar?

saludos

publicado

sorry , mis campos son

 id    codigo    nombre    Clase    GrupoID    ImpuestoID    Impuesto2ID    Impuesto3ID    CostoCompra    Precio1
[/CODE]

cuando genero el isnsert solo llega al campo 5 , faltaria los demas campos creo que se debe or la parte de codigo solo dice 5

[CODE]strSQL = "INSERT INTO Tabla (" & Valor2 & ") " & _
"VALUES ('" & .Cells(RowCursor, 1) & "', " & _
"'" & .Cells(RowCursor, 2) & "', " & _
.Cells(RowCursor, 3) & "," & _
"'" & .Cells(RowCursor, 4) & "', " & _
"'" & .Cells(RowCursor, 5) & "')"[/CODE]

INSERT INTO Tabla (id, codigo, nombre, Clase, GrupoID, ImpuestoID, Impuesto2ID, Impuesto3ID, CostoCompra, Precio1) VALUES ('0000000001', '124644664441554', REGISTRO QUIMESTRAL 4C 40 ALUMNOS,'01', '0000000002')

publicado

disculpa que no te pueda ayudar pero aqui no se hacen trabajos

pero ay esta la macro solo genera el insert de ay copio y pego al administrador sql
solo se apoya sobre dudas en especifico, el foro sirve para retroalimentacion para las personas que apoya a solventar las dudas y para aprendizaje para las personas personas que llegamos a tener dudas sobre cuestiones en concreto.
publicado

Sip edi estamos para apoyarnos con dudas pero para eso necesitamos herramientas

me imagino que deseas ingresar todos lo datos que existen en una lista, cuales el rango?
una pregunta tu origen donde estan tus datos aprocesar se llama la hoja datos
 ActiveWorkbook.Sheets("Datos")[/CODE]

por que asi se llama la del codigo que copiaste cierto? y que tal si tu hoja se llama "Base" te pedi

para poderte ayudar debes subir un archivo
y no lo hiciste dime como te apoyamos, dudo en verdad que asi
pero ay esta la macro solo genera el insert de ay copio y pego al administrador sql
algun compañero o maestro del foro te pueda apoyar

disculpame pero no te dejas ayudar

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.