En aquest vídeo s’explica com fer-ho per office 2010. En el cas que sigui una versió anterior, doncs l’agafeu i el guardeu en format office 2010 i fer lo que diu el video:
divendres, 30 d’agost del 2013
Per si algun dia heu de treure el password a un excel protegit
divendres, 2 d’agost del 2013
Problemes de connectivitat de xarxa local entre un Win 7 i un Win 2003 Server
De cop i volta, en un client, m’he trobat que al accedir a una unitat de xarxa que funcionava sense problemes des d’un Win 7 a un Win 2003 server, sempre demanava usuari i clau de pas i per mol que entressis l’usuari i clau de pas correctes et deia que la clau era incorrecte. Aquest win 7 estava connectat sense problemes fins al dia que va començar a passar. A més a més tenia accés a la resta d’equips de la xarxa, i per acabar d’arrodonir-ho, des del 2003 server també es tenia accés al equip amb win 7. Resumint, que funcionava tota la xarxa excepte l’accés des del win 7 al win 2003. Doncs bé, sembla ser que això és una actualització de Windows. He buscat per internet i la majoria dels cracks que escriuen coses d’aquestes optaven per formatar l’ordinador, però em va semblar una solució massa radical. Finalment he trobat la solució en aquesta web, m’ha funcionat a la perfecció:
dimecres, 17 de juliol del 2013
Truncar i reduir l’arxiu .ldf d’un SQL Server
A continuació us proposo un link interessant sobre SQL Server i com reduir el registre de transaccions:
http://panicoenlaxbox.blogspot.com.es/2011/09/truncar-y-reducir-el-fichero-de.html
dimecres, 19 de juny del 2013
Càlcul del dígit de control en el codi SSCC
Recentment m’he trobat amb la necessitat de generar el dígit de control del codi SSCC per unes etiquetes EAN128. He trobat informació al respecte en aquesta web:
http://gs1ec.org/contenido/index.php?option=com_content&view=article&id=5&Itemid=42
La informació de fet és aquesta:
A continuació us poso la funció que he fe per tal de controlar aquest dígit de control:
Private Function Verifica_DC_SSCC(ByRef Valor_SSCC As String) As Boolean
Dim i As Byte
Dim TotalBase As Long
Dim Total10 As Long
Dim DC As Byte
'de moment suposarem que em ve alguna cosa com ara (00)XXXXXXXXXXXXXXXXXC
Valor_SSCC = Right$(Valor_SSCC, 18)
If Len(Valor_SSCC) <> 18 Then
MsgBox "El SSCC ha de ser de 18 dígits.", vbInformation
End If
TotalBase = 0
For i = 1 To 17
TotalBase = TotalBase + Mid(Valor_SSCC, i, 1) * IIf(i Mod 2 = 0, 1, 3)
Next i
Total10 = TotalBase
While Total10 Mod 10 <> 0
Total10 = Total10 + 1
Wend
DC = Total10 - TotalBase
If DC <> Right(Valor_SSCC, 1) Then
MsgBox "Dígit de control incorrecte, hauria de ser un: " & DC
Verifica_DC_SSCC = False
Else
Verifica_DC_SSCC = True
End If
End Function
dimecres, 12 de juny del 2013
Desactivar el control automàtic de les columnes Identity en una replicació de barreja al SQL Server 2008 R2
En el cassos en que es vulgui desactivar el control automàtic de les columnes Identity en una replicació cal aplicar aquesta funció:
sp_changemergearticle @publication, @article, "identityrangemanagementoption", "none"
Per executar-la cal fer-ho a la base de dades publicada (per exemple a la base de dades “EXBD”, i a la taula “Tags” on la clau principal és una columna Identity):
sp_changemergearticle ‘EXBD’, 'tags', ‘identityrangemanagementoption’, ‘none’
Això desactiva tot el control del comptador Identity de la publicació, per tant, cal tindre en compte que les dades només seran entrades al publicador o a un subscriptor, ja que en cas contrari hi haurà conflictes amb aquest comptador. Si es volen entrar dades tan al publicador com al subscriptor cal utilitzar les instruccions SET IDENTITY_INSERT “nom_taula” ON i SET IDENTITY_INSERT “nom_taula” OFF per controlar i assignar manualment el comptador. Us poso un exemple per la taula “Tags” on el TagId és la columna Identity:
BEGIN TRANSACTION
SET IDENTITY_INSERT Tags ON
INSERT INTO Tags (TagId,Tag) VALUES (1000,'Tag Nou')
SET IDENTITY_INSERT Tags OFF
COMMIT TRANSACTION
També es poden utilitzar aquestes instruccions amb els objectes ADO per VB6. En el cas de l’exemple anterior i suposant que BDAux és la connexió a la base de dades:
BDAux.BeginTrans
BDAux.Execute "SET IDENTITY_INSERT Tags ON"
sql = "SELECT * FROM Tags
sql = sql & " WHERE TagId=1000"
Set Tb = New ADODB.Recordset
Tb.Open sql, BDAux, adOpenKeyset, adLockOptimistic
If Tb.EOF Then
Tb.AddNew
Tb!TagId = 1000
End If
Tb!Tag = “Tag Nou”
Tb.Update
Tb.close
Set Tb = Nothing
BDAux.Execute "SET IDENTITY_INSERT Tags OFF"
BDAux.CommitTrans
dilluns, 10 de juny del 2013
Sniffer
A continuació us proposo una eina útil que m’ha passat un company de feina; deixo el text tal i com ell m’ha explicat (gràcies Natan):
Potser no ho fareu servir mai, però he trobat una eina sense la qual se m’hagués fet quasi impossible saber per que no expirava la sessió d’un programa web:
És un sniffer que registra totes les peticions http que es fan, podent filtrar-les, depurar-les, posar breakpoints, etc.
També serveix per saber si algun “programilla “està fent peticions que no toquen (algun malware)
Pues eso, ahí lo dejo por si os interesa.
Error de sincronització web a la replicació de bases de dades SQLServer
L’escenari és el següent, tinc en un servidor SQLServer 2008 R2 una base de dades publicada y configurada per la sincronització via web (per internet). El publicador y la sincronització web funcionen perfectament. Per altre banda tinc un altre servidor configurat com subscriptor amb SQLServer 2008 R2 express també funcionant perfectament. Com que el subscriptor te la versió express del SQLServer, aquest no disposa del SQLServerAgent. Per tant la sincronització s’inicia mitjançant un programari fet amb C# que utilitza RMO. Aquest programari ha esta funcionant durant un llarg període de temps i tan els canvis realitzats a la base de dades del publicador com els canvis fets al subscriptor s’han sincronitzat correctament. De sobte, però, la sincronització ha deixat de funcionar mostrant el següent error:
No se encontró la dirección URL de configuración automática del proxy.
El Agente de mezcla no se pudo conectar a la dirección URL durante la sincronización web. Compruebe que la configuración de dirección URL, credenciales de inicio de sesión en Internet y servidor proxy es correcta y que se puede tener acceso al servidor web.
Error: The subscription could not be synchronized. Verify that the subscription has been defined correctly.
Per tal d’arreglar aquest error, cal anar al menú del “internet explorer” –> “Herramientas” –> “Opciones de internet” –> pestanya de “Conexiones” –> Botó de “configuración LAN” i desmarcar tots els paràmetres. Concretament en aquest cas estava marcat el paràmetre de “Detectar la configuración automaticamente”, segurament marcat per error en alguna de les tasques de manteniment realitzades en el servidor:
dijous, 30 de maig del 2013
Aplicacions VB6 que no funcionen via Terminal Server si no s’entra com usuari Administrador
Suposem el cas d’una aplicació VB6 que funciona correctament, i de la qual tenim una instal·lació que també funciona correctament. Fem la instal·lació en un servidor i quan executem l’aplicació tot funciona bé. Si entrem remotament a aquest servidor, amb un usuari amb privilegis d’administrador i executem l’aplicació també funciona tot correctament.
En canvi, si entrem remotament amb un usuari SENSE privilegis d’administrador resulta que l’aplicació no funciona bé. Es pot donar el cas que no entra en determinats formularis (problema de registre d’OCX) i també es pot donar el cas de que en un formulari per exemple de manteniment, podem veure les dades en els camps de text, si ens movem per el adodc el registre va canviant, però si mirem la consulta per el TDBGrid resulta que està en blanc, no es veu cap dada.
Per tal d’arreglar aquest problema i d’altres problemes d’instal·lació quan s’accedeix a un equip remotament, cal que es faci la instal·lació des de l’opció “Panel de control” –> ”Instalar aplicación en servidor de Escritorio remoto”:
S’obrirà un assistent on tan sols cal escollir el programa d’instal·lació que volem executar, i un cop finalitzada la instal·lació polsarem el botó “Finalizar” del assistent. Un cop feta o fetes les instal"·lacions d’aquesta manera, les execucions de l’aplicació via Terminal Server ja funcionaran correctament.
Si no trobeu aquesta opció al “panel de control” també podeu fer-ho amb la comanda CHGUSR /Install
Aquí us deixo un link on s’explica: