Jump to content

marcosab

Members
  • Posts

    48
  • Joined

  • Last visited

About marcosab

  • Birthday 02/23/1984

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

marcosab's Achievements

  1. Muchas gracias Antoni por la respuesta y su tiempo. intente con lo que recomienda y me da este error "[microsoft][ODBC SQL Server Driver][SQL Server]Column name or nomber of suplied values does not matsch table definitions" Todo el codigo que estoy utilizando es el siguiente: Private Sub InsertarFila() Sql = "INSERT INTO Proceso_Sucesorios VALUES(" Sql = Sql & "'" & ActiveCell.Offset(0, 26) & "'," Sql = Sql & "'" & ActiveCell.Offset(0, 0) & "'," Sql = Sql & ActiveCell.Offset(0, 8) & "," Sql = Sql & ActiveCell.Offset(0, 9) & "," Sql = Sql & "'" & ActiveSheet.Range("H3").Value & "'," Sql = Sql & "'" & Format(ActiveSheet.Range("J3").Value, "YYYY-MM-DD") & "'," Sql = Sql & "'" & ActiveSheet.Range("M1").Value & "'," Sql = Sql & "'" & Format(ActiveSheet.Range("N1").Value, "YYYY-MM-DD hh:mm:ss") & "')" Cnn.Execute Sql, , adCmdText Exit Sub El error anterior no esta ahora es un error que al parecer sin firentes la columnas por esto adjunto una imagen de la estructura de la table a la cual estoy enviando la información: De verdad valoro mucho la ayuda.
  2. Buenas tardes grupo Recuro a usted a ver si alguno me puede ayudar con un problema que tengo. Tengo mi configuración regional en español (los campos numericos el searador de desimales esta con una coma "," ). el problema surge cuando quiero enviar datos al SQL que esta en ingles que el separador de desimales esta con un punto "." llevo semanas intentando con varias alternativas y ninguna me funciona todas dan error [microsoft][ODBC SQL Server Driver][SQL Server]error converting data type varchar to numeric Algunas de las alternativas que he probado son las siguientes. Sql = Sql & "'" & Format(ActiveCell.Offset(0, 8), "[en-US]#,##0.00") & "'," Sql = Sql & "'" & Format(ActiveCell.Offset(0, 8), "#,##0.00") & "'," de la unica forma que funciona es la siguiente pero me elimina los desimales Sql = Sql & "'" & Format(ActiveCell.Offset(0, 8), "0") & "'," En la base de datos tengo el campo lo tengo como decimal(18, 10) Alguna recomendación seria de mucha ayuda Saludos,
  3. Buenas noches Espero que por favor me puedan ayudar. Sigo con el mismo proyecto, he estado trabajando y tengo el codigo que muestro. Si tengo solo el registro de los casos los registra bien, el problema inicia cuando agrego el codigo para buscar si el registro ya existe que lo busca y si existe indica que ya existe el registro. Pero como esta el codigo cuando el registro no existen no exporta los datos. Se que hay un error o le hace falta algo al codigo pero no logro encontrar que se debe cambiar. Dim Cnn As ADODB.Connection, rs As ADODB.Recordset, n As Long Sub Imp_Registro_Inicial() Set Cnn = New ADODB.Connection Cnn.Open sRuta Cnn.BeginTrans Registros = 0 ActiveSheet.Range("B7").Activate Do Until ActiveCell = Empty If ActiveCell.Offset(0, 21) = Empty Then Buscarregistros Registros = Registros + 1 Else If ActiveCell.Offset(0, 21) = Empty Then InsertarFila End If End If ActiveCell.Offset(1, 0).Activate Loop Cnn.CommitTrans '---------------------------------------------------------------------------- Cnn.Close Set Cnn = Nothing '-- If Registros = 0 Then MsgBox "No se han detectado filas a añadir/modificar.", vbInformation, "DATOS EXPORTADOS" Else MsgBox Registros & " filas han sido añadidas.", vbInformation, "DATOS EXPORTADOS" End If End Sub Private Sub Buscarregistros() With Sheets("R_A1") Set rs = New ADODB.Recordset SQL = "SELECT Count(*) FROM Reporte_Inicial WHERE [N_Caso]='" & ActiveCell & "'" rs.Open SQL, Cnn, 3, 3, adCmdText Datos = rs.GetRows If Datos(0, 0) > 0 Then MsgBox "El numero de caso " & ActiveCell & ", ya fue registrado previamente, favor revisar.", vbCritical, "SACI" Else B_ingesarDatos = True End If End With Exit Sub End Sub Private Sub InsertarFila() SQL = "INSERT INTO Reporte_Inicial VALUES(" SQL = SQL & "'" & ActiveCell & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 1) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 2) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 3) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 4) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 5) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 6) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 7) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 8) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 9) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 10) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 11) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 12) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 13) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 14) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 15) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 16) & "'," SQL = SQL & "'" & ActiveCell.Offset(0, 17) & "'," SQL = SQL & "'" & ActiveSheet.Range("K1").Value & "'," SQL = SQL & "'" & ActiveSheet.Range("K2").Value & "')" Cnn.Execute SQL, , adCmdText Exit Sub End Sub
  4. Hola Gracias por la respuesta, no soy experto en macro, lo que tengo hasta el momento lo he logrado leyendo en grupos y ajustando algunos otros proyectos. segun lo que me comenta me parece que el macro que hay en que coloco acontinuación, sin embargo no tengo claro como ajustarlo y cuales son las variables que pueden recorrer todas las filas llenas. Espero que alguno de ustedes me pueda colaborar para continuar con el proyecto. (importante: las columnas de la B al la T son datos diferente para cada fila y los datos de la K1 y K2 son iguales para todos los datos que se incluyan en el mismo grupo de datos) Sub ingesarDatos() Set Cnn = New ADODB.Connection Cnn.Open sRuta SQL = "INSERT INTO Reporte_Inicial (N_Caso, Id_Causante, Nombre_Causante, Id_Depositario, Nombre_Depositario, Riesgo, Tipo_de_Beneficiario, Razon_Suspension, Fecha_Suspension, Fecha_Defuncion, Periodo_Deuda, Monto_exacto, Meses_Pagados, Monto_Pagado_915, Monto_Pagado_Agui, Lugar_de_Pago, Direccion_Regional, Banco, Cuenta_Cliente, Mes, Usuario)" SQL = SQL & "VALUES ('" & Worksheets("R_A1").Range("B7").Value & "', " & _ "'" & Worksheets("R_A1").Range("C7").Value & "', " & _ "'" & Worksheets("R_A1").Range("D7").Value & "', " & _ "'" & Worksheets("R_A1").Range("E7").Value & "', " & _ "'" & Worksheets("R_A1").Range("F7").Value & "', " & _ "'" & Worksheets("R_A1").Range("G7").Value & "', " & _ "'" & Worksheets("R_A1").Range("H7").Value & "', " & _ "'" & Worksheets("R_A1").Range("I7").Value & "', " & _ "'" & Worksheets("R_A1").Range("I7").Value & "', " & _ "'" & Worksheets("R_A1").Range("K7").Value & "', " & _ "'" & Worksheets("R_A1").Range("L7").Value & "', " & _ "'" & Worksheets("R_A1").Range("M7").Value & "', " & _ "'" & Worksheets("R_A1").Range("N7").Value & "', " & _ "'" & Worksheets("R_A1").Range("O7").Value & "', " & _ "'" & Worksheets("R_A1").Range("P7").Value & "', " & _ "'" & Worksheets("R_A1").Range("Q7").Value & "', " & _ "'" & Worksheets("R_A1").Range("R7").Value & "', " & _ "'" & Worksheets("R_A1").Range("S7").Value & "', " & _ "'" & Worksheets("R_A1").Range("T7").Value & "', " & _ "'" & Worksheets("R_A1").Range("K2").Value & "', " & _ "'" & Worksheets("R_A1").Range("k1").Value & "' )" C_ingesarDatos = True Cnn.Execute (SQL) Cnn.Close Set Cnn = Nothing End Sub
  5. Hola a todos Estoy intentando automatizar un proceso y que los registros que hay en excel exportarlo a SQL espero que los espertos del gripo me puedan ayudar. El archicho que adjunto me funciona cuando es solo un registro en la fila 7, sin embargo requiero: 1 Que me consulte si los datos de la fila B (que peuden ser una o muchas filas con información ), en caso de ya estar el registro en la base de datos que mande la leyenda. 2 Que si los datos de la fila B no existen en la base de datos que exprote todos los datos con el macro ingesarDatos. El archivo adjunto lo he estado trabajando, sin embargo se me han complicado los puntos anteriores., espero me peudan ayudar. Saludos Registro.xlsm
×
×
  • Create New...

Important Information

Privacy Policy