Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Nick


Contraseña


Nuevo usuario


English
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Macro de access - word
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Macro de access - word

Publicar nuevo tema Responder al tema
Foros de discusión » Access, base de datos Microsoft Access (mdb)   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
mento
Usuario


Registrado: Jan 13, 2012
Mensajes: 2

Asunto: Macro de access - word Responder citando

Buen dia, trate de realizar el ejemplo que detallan en la pagina http://www.ajpdsoft.com/modules.php?name=News&file=print&sid=452 en un modulo diferente del documento normal o en a traves de un formulario y en la parte de acceso y consulta de datos me sale el error Type Mismatch, trate de corregrilo colocando:
Dim db As DAO.Database, pero es me genero mas problemas.

La parte es:
Set db = opendatabase("C:bdajpdsoft.mdb")
sql = "SELECT nombre, dni FROM clientes"
sql = sql & " WHERE nombre is not null"
sql = sql & " ORDER by nombre"
Set rsDatos = db.OpenRecordset(sql, dbOpenSnapshot)
cuando llega pasa de Set rsDatos = db.OpenRecordset(sql, dbOpenSnapshot), en la parte Set db = opendatabase("C:bdajpdsoft.mdb") pareciera que no tomara la base de datos, el codigo que manejo tomando de referencia el ejemplo de esta pagina es:

Dim db As DAO.Database
Dim rsDatos As Recordset


Sub obtencionDatosMDB()
Dim sql As String
Dim resultadoMsg


On Error GoTo cError

resultadoMsg = MsgBox("Se va a realizar la conexión con la " & _
"base de datos para obtener los datos a partir " & _
"del punto actual del documento Word ¿desea " & _
"continuar?", vbQuestion + vbOKCancel, "Acceso a mdb desde Word")


If resultadoMsg = vbOK Then
'Accedemos a Access (mdb) desde Word
Set db = OpenDatabase("\\jacostam\ComTotal\Entregables.mdb")
sql = "SELECT nombreEntregable, numeroEntregable FROM dbo_TB_Entregable"
sql = sql & " Where idPresupuesto = " & Entregables.idetapa
sql = sql & " ORDER by numeroEntregable"
Set rsDatos = db.OpenRecordset(sql, dbOpenSnapshot)

'Recorremos la tabla de clientes
Do While (Not rsDatos.EOF)


With ActiveDocument.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientPortrait
.TopMargin = CentimetersToPoints(2.54)
.BottomMargin = CentimetersToPoints(2.54)
.LeftMargin = CentimetersToPoints(3.17)
.RightMargin = CentimetersToPoints(3.17)
.Gutter = CentimetersToPoints(0)
.HeaderDistance = CentimetersToPoints(1.25)
.FooterDistance = CentimetersToPoints(1.25)
.PageWidth = CentimetersToPoints(21.59)
.PageHeight = CentimetersToPoints(27.94)
.FirstPageTray = wdPrinterDefaultBin
.OtherPagesTray = wdPrinterDefaultBin
.SectionStart = wdSectionNewPage
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.VerticalAlignment = wdAlignVerticalCenter
.SuppressEndnotes = False
.MirrorMargins = False
.TwoPagesOnOne = False
.BookFoldPrinting = False
.BookFoldRevPrinting = False
.BookFoldPrintingSheets = 1
.GutterPos = wdGutterPosLeft
End With
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

Selection.Font.Size = 16
Selection.Font.Bold = True

'Insertamos el nombre del cliente en la tabla
sValor = " " & UCase(rsDatos("nombreEntregable"))
Selection.TypeText Text:=sValor
Selection.InsertBreak Type:=wdSectionBreakNextPage

' Selection.MoveRight Unit:=wdCell

rsDatos.MoveNext
Loop
rsDatos.Close
End If

cSalir:
Set db = Nothing
Exit Sub

cError:
MsgBox Err.Description, vbExclamation + vbOKOnly
GoTo cSalir
End Sub

Agradezco cualquier colaboracion.
MensajePublicado:
Vie Ene 13, 2012 6:49 pm
Top of PageVer perfil de usuario
mento
Usuario


Registrado: Jan 13, 2012
Mensajes: 2

Asunto: Responder citando

Gracias por los que leyeron, ya logre solucionar el problema.

Se realizo lo siguiente:

Dim db As DAO.Database
Dim rsDatos As DAO.Recordset
MensajePublicado:
Vie Ene 13, 2012 8:19 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Responder citando

mento escribió:
Gracias por los que leyeron, ya logre solucionar el problema.

Se realizo lo siguiente:

Dim db As DAO.Database
Dim rsDatos As DAO.Recordset


Gracias por tu aporte, efectivamente, como indicamos al principio del código de este artículo:

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=452#creacionvba

Hay que definir el objeto "Database" y el objeto "Recordset" al principio con:

Código:

Dim db As Database
Dim rsDatos As Recordset
MensajePublicado:
Mar Ene 17, 2012 7:43 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Access, base de datos Microsoft Access (mdb)  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+