Importar tablas de SQL a base de datos access

Aquí les dejo un ejemplo de como importar las tablas de una base de datos de SQL server, este ejemplo el nombre las tablas y el servidor lo coloque en una tabla de Access  entonces accedo a esa tabla atravez de ADO.Recordset y recorre los registros hasta terminar.

Sub SQLImport()

On Error GoTo error

Dim NombreTabla As String ‘Nombre de la tabla
Dim Base As String ‘base de datos
Dim registros As Integer
Dim contador As Integer
Dim TABLAS_RPM_T4M As ADODB.Recordset
Dim Importar As ADODB.Command
Dim DropTable As ADODB.Command
Dim origen As String ‘origen de la tabla
Set TABLAS_RPM_T4M = New ADODB.Recordset

With TABLAS_RPM_T4M
.ActiveConnection = CurrentProject.Connection
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open «SELECT TABLA,BASE FROM TABLAS_RPM_T4M»
End With

registros = TABLAS_RPM_T4M.RecordCount
For contador = 1 To registros

Set Importar = New ADODB.Command
Set DropTable = New ADODB.Command

NombreTabla = TABLAS_RPM_T4M.Fields(0)
Base = TABLAS_RPM_T4M.Fields(1)
With DropTable
.ActiveConnection = CurrentProject.Connection
.CommandText = «drop table » & NombreTabla
.Execute
End With

origen = «[ODBC;Driver=SQL Server;» & _
«SERVER=CME042;» & _
«DATABASE=» & Base & «;» & _
«Integrated Security=SSPI;].[» & NombreTabla & «]»

With Importar
.ActiveConnection = CurrentProject.Connection
.CommandText = «SELECT * INTO » & NombreTabla & » FROM » & origen
.Execute
End With

If TABLAS_RPM_T4M.EOF And TABLAS_RPM_T4M.BOF Then
Exit Sub
Else
TABLAS_RPM_T4M.MoveNext
End If

Set Importar = Nothing
Set DropTable = Nothing

Next

DoCmd.Echo True

Set Importar = Nothing
Set DropTable = Nothing
Set TABLAS_RPM_T4M = Nothing

Exit Sub
error:
MsgBox error, vbCritical
MsgBox «Problema al crear imagen de » & NombreTabla, vbCritical

DoCmd.Echo True

Set Importar = Nothing
Set DropTable = Nothing
Set TABLAS_RPM_T4M = Nothing

End Sub

Comparar Id de una tabla, para evitar duplicados

Este es un ejemplo sencillo de una pregunta que realizaron en todoexpertos.com

Es meramente para evitar duplicados en las tablas cuando el campo Id no es autonumerico, este  caso el campo Id es Notas

Sub comparar()
Dim SalidosClave As String
Dim EventosCNotas As ADODB.Recordset
Set EventosCNotas = New ADODB.Recordset

‘Aqui colocas la clave que quieres verificar si se puede utilizar, esto es solo un ejemplo

SalidosClave = «DJ125757 – Color GRIS PLATA»
With EventosCNotas
.ActiveConnection = CurrentProject.Connection
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open «Select Notas from Eventos where Notas = ‘» & SalidosClave & «‘»
End With

If EventosCNotas.RecordCount > 0 Then
MsgBox «El registro ya se utilizo»
Else
MsgBox «El registro no se utilizo, puede utilizarlo»
End If
Set EventosCNotas = Nothing
End Sub

Bienvenidos!

Bienvenidos al BLOG de TodoAccessVBA, esto es con la finalidad de aportar una pequeña ayuda sobre todo lo que puede hacer Access, empezare un curso sobre programación VBA y Acceso a datos con Access utilizando ADO, espero sea de su agrado y no olviden suscribirse.

 

 

Saludos

Información del Curso de Access VBA

Estimados les informo que en cualquier momento de este día, haré la primera publicación del curso.

 

 

Saludos

No olviden inscribirse al curso de VB.Net

Les informo que para que inicie el curso de Visual Basic .NET se coloquen como miembros del BLOG, o manden un correo a mi cuenta o solo dejen su comentario.

Sera enfocada a base de datos con ADO.NET

Saludos

Agrupar los datos de dos filas en un solo campo

Una pregunta que encontre de como Agrupar los datos de dos filas en un solo campo
es sencillo solo con un poco de codigo y 2 tablas se podra realizar esto lo que hara el ejemplo es lo siguiente:

Matrícula 1      Conductor A
Matrícula 2      Conductor B
Matrícula 2      Conductor C
Matrícula 3      Conductor D
….
Matrícula 1      Conductor A
Matrícula 2      Conductor B y Conductor C
Matrícula 3      Conductor D
código:

campos de la tabla Matricula: Matricula,Conductor
Campos de la tabla concatenaciónMatricula,Conductor
Dim TablaMatriculas As ADODB.Recordset
Dim TablaConcatenacion As ADODB.Recordset
‘campos
Dim matricula As String
Dim conductor As String

Set TablaMatriculas = New ADODB.Recordset

With TablaMatriculas
.ActiveConnection = CurrentProject.Connection
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open » select Matricula, Conductor from Matriculas»
End With

Set TablaConcatenacion = New ADODB.Recordset

 With TablaConcatenacion
 .ActiveConnection = CurrentProject.Connection
 .CursorType = adOpenKeyset
 .LockType = adLockOptimistic
 .Open «select Matricula,Conductor from Concatenacion»
 End With
Do While Not TablaMatriculas.EOF

matricula = TablaMatriculas.Fields(0)
conductor = «»


Do While Not TablaMatriculas.EOF And matricula = TablaMatriculas.Fields(0)

conductor = conductor & » » & TablaMatriculas.Fields(1)
TablaMatriculas.MoveNext


If TablaMatriculas.EOF Then
Exit Do
End If
Loop


TablaConcatenacion.AddNew
TablaConcatenacion.Fields(0) = matricula
TablaConcatenacion.Fields(1) = conductor
TablaConcatenacion.Update

Loop

MsgBox «Revisa la tabla concatenacion», vbInformation, «Informacion»

End sub

INFORMACION

Hola que tal, estoy pensando en iniciar un curso sobre Visual Basic .NET, para aquellos que deseen el curso porfavor manden su comentario a mi correo: rigo_rdz_92@hotmail.com, tambien pueden suscribirse al blog o dejarme un comentario sobre el curso.

Saludos

Sumar cadena alfanumerica

Encontré una pregunta abierta en la pagina de www.todoexpertos.com la cual me tome el tiempo de contestar, la pregunta era de como se podía sumar los caracteres numéricos de una cadena de texto, aquí les muestro la forma de hacerlo.

El ejemplo siguiente consiste en suma la cadena «frds0000gts» mas el valor 25 de tal forma que quede de la siguiente manera «frds0025gts».

Sub SumarAlfanumericos()
Dim valor As Integer
Dim Caracter As String
Dim tempCaracter As String
Dim cadenaEjemplo As String
Dim union As String

cadenaEjemplo = «frds0000gts»

valor = 25

Caracter = Mid(cadenaEjemplo, 5, 4)
tempCaracter = Format((valor + Caracter), «0000»)

union = Mid(cadenaEjemplo, 1, 4) & tempCaracter & Mid(cadenaEjemplo, 10, 3)

Debug.Print union
End Sub

Dejen sus comentarios y suscribanse

Saludos

Obtener los números de una cadena de texto

Este ejemplo es de una pregunta que me realizaron en http://www.todoexpertos.com/, de como obtener los caracteres numéricos de una cadena de texto.

con el siguiente código se pueden obtener el dato:

Sub RecorrerCadena()
Dim i As Integer
Dim Caracter As String
Dim tempCaracter As String
Dim cadenaEjemplo As String

cadenaEjemplo = «RFERT20FR3»

For i = 1 To Len(cadenaEjemplo)
If IsNumeric(Mid(cadenaEjemplo, i, 1)) Then
Caracter = Mid(cadenaEjemplo, i, 1)
tempCaracter = tempCaracter & Caracter

End If

Next
Debug.Print tempCaracter

End Sub

No olviden Suscribirse. Gracias
Saludos 

Navegación con Hipervínculos

Martes, 14 de Febrero de 2012
Esto es particular mente fácil de hacer, ya que no se tiene que escribir ningún tipo de código solo basta con seguir unos pocos pasos.
Los cuales son:
1.- Al crear el formulario agregamos una etiqueta.
2.- En las propiedades de la etiqueta nos dirigimos a donde dice dirección de hipervínculo, damos clic en los 3 puntitos, al dar clic nos aparecerá una venta ahí en la parte izquierda de la ventana seleccionamos objeto de esta base de datos, seleccionamos ya sea un formulario, damos aceptar y seria todo su etiqueta quedaría así.