Uso y definicion de variables de usuario

17/05/2004 - 21:46 por Akhenaton | Informe spam
Hola.

Bien mi idea es insertar unas variables en una plantilla dichas variables se
actualizaran dependiendo del usuario que abra la plantilla por supuesto a de
leer en el sql server todo esto ok.

Problemas:
Como inserto estas variables de usuario en el documento. (Usuario, Telefono,
Mail, Fax.) de momento lo he solucionado con marcadores


Private Sub Document_New()
On Error GoTo Trap

Dim Fa As Long
Dim ComputerName As String
Dim Username As String

ComputerName = String$(255, 0)
Fa = 255
GetComputerName ComputerName, Fa
ComputerName = Left(ComputerName, Fa)

Username = String$(255, 0)
Fa = 255
GetUserName Username, Fa
Username = Left(Username, Fa - 1)

If Conect.State = adStateOpen Then Conect.Close
Conect.Open ("Provider=MSDASQL.1;Password=ppppp;Persist Security
Info=False;User ID=pppp;Data Source=An;Mode=ReadWrite;Initial Catalog=An")
If RsUsuario.State = adStateOpen Then RsUsuario.Close
RsUsuario.Open "SELECT Usuarios.* FROM Usuarios WHERE Alias='" &
Username & "'", Conect, adOpenDynamic, adLockReadOnly

If RsUsuario.EOF Then
MsgBox "El Usuario: " & Username & " No tiene permisos " & vbCrLf &
vbCrLf & "Contacte con el administrador", vbOKOnly + vbInformation, "No
tiene permisos"
'Si no tiene permisos salir sin grabar
Application.ActiveDocument.Saved = True
Application.Quit
Close
Else
With ActiveDocument.Bookmarks
.Item("Usuario").Range.InsertAfter RsUsuario.Fields("Usuario")
.Item("Mail").Range.InsertAfter RsUsuario.Fields("Mail")
.Item("Fax").Range.InsertAfter RsUsuario.Fields("Fax")
.Item("Telefono").Range.InsertAfter RsUsuario.Fields("Telefono")
End With
Exit Sub
End If

Set Conect = Nothing
Set RsUsuario = Nothing

On Error GoTo 0
Exit Sub
Trap:
Select Case Err.Number
Case -2147467259
CreateDSN "An", "SQL Server", "An", "MA", "No"
Resume
Case Else
MsgBox "Error: " & Err.Number
Application.ActiveDocument.Saved = True
Application.Quit
Close
End Select
End Sub

Preguntas similare

Leer las respuestas

#1 Akhenaton
18/05/2004 - 21:20 | Informe spam
Que mala suerte la mia. a nadie se le ocurre algo. word no puede definir
variables.
Respuesta Responder a este mensaje
#2 Nilda Beatriz Díaz
19/05/2004 - 00:00 | Informe spam
Y probaste con campos de Formulario?
El código es similar, solo que en lugar de los marcadores

With ActiveDocument.Bookmarks
.Item("Usuario").Range.InsertAfter RsUsuario.Fields("Usuario")

Sería este

With ActiveDocument.FormFields
.Item("Usuario").Result=RsUsuario.Fields("Usuario")



Suerte
Nilda Beatriz Díaz
MS - MVP
Desde el tercer planeta a partir del Sol
"Akhenaton" escribió en el mensaje
news:
Hola.

Bien mi idea es insertar unas variables en una plantilla dichas variables se
actualizaran dependiendo del usuario que abra la plantilla por supuesto a de
leer en el sql server todo esto ok.

Problemas:
Como inserto estas variables de usuario en el documento. (Usuario, Telefono,
Mail, Fax.) de momento lo he solucionado con marcadores


Private Sub Document_New()
On Error GoTo Trap

Dim Fa As Long
Dim ComputerName As String
Dim Username As String

ComputerName = String$(255, 0)
Fa = 255
GetComputerName ComputerName, Fa
ComputerName = Left(ComputerName, Fa)

Username = String$(255, 0)
Fa = 255
GetUserName Username, Fa
Username = Left(Username, Fa - 1)

If Conect.State = adStateOpen Then Conect.Close
Conect.Open ("Provider=MSDASQL.1;Password=ppppp;Persist Security
Info=False;User ID=pppp;Data Source=An;Mode=ReadWrite;Initial Catalog=An")
If RsUsuario.State = adStateOpen Then RsUsuario.Close
RsUsuario.Open "SELECT Usuarios.* FROM Usuarios WHERE Alias='" &
Username & "'", Conect, adOpenDynamic, adLockReadOnly

If RsUsuario.EOF Then
MsgBox "El Usuario: " & Username & " No tiene permisos " & vbCrLf &
vbCrLf & "Contacte con el administrador", vbOKOnly + vbInformation, "No
tiene permisos"
'Si no tiene permisos salir sin grabar
Application.ActiveDocument.Saved = True
Application.Quit
Close
Else
With ActiveDocument.Bookmarks
.Item("Usuario").Range.InsertAfter RsUsuario.Fields("Usuario")
.Item("Mail").Range.InsertAfter RsUsuario.Fields("Mail")
.Item("Fax").Range.InsertAfter RsUsuario.Fields("Fax")
.Item("Telefono").Range.InsertAfter RsUsuario.Fields("Telefono")
End With
Exit Sub
End If

Set Conect = Nothing
Set RsUsuario = Nothing

On Error GoTo 0
Exit Sub
Trap:
Select Case Err.Number
Case -2147467259
CreateDSN "An", "SQL Server", "An", "MA", "No"
Resume
Case Else
MsgBox "Error: " & Err.Number
Application.ActiveDocument.Saved = True
Application.Quit
Close
End Select
End Sub


Respuesta Responder a este mensaje
#3 Akhenaton
19/05/2004 - 20:45 | Informe spam
No es un formulario sino una simple carata modelo con terminacion dot.
de todas formas lo intentare. gracias

Salu2.
Respuesta Responder a este mensaje
#4 Nilda Beatriz Díaz
20/05/2004 - 02:06 | Informe spam
Pero en las plantillas se pueden usar campos de Formulario también..
Mira en la barra de herramientas "Formularios" propia del Word.

Suerte
Nilda Beatriz Díaz
MS - MVP
Desde el tercer planeta a partir del Sol
"Akhenaton" escribió en el mensaje
news:%2316$
No es un formulario sino una simple carata modelo con terminacion dot.
de todas formas lo intentare. gracias

Salu2.


Respuesta Responder a este mensaje
#5 Akhenaton
20/05/2004 - 18:29 | Informe spam
Beatriz. Funciono tal cual esperaba solo que ahora no lo puedo insertar en
los encabezados y pie de pagina.

gracias. te debo una
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida