Formato del campo TasaOCuota para Impuestos desde T-SQL para CFDI 3.3

El formato de TasaOCuota para un impuesto en un CFDI v3.3 requiere 6 dígitos. Para el caso del IVA sería 0.1600000.

Una forma fácil de transformar el valor del campo a ese formato es usar la instrucción Format de SQL:

SELECT FORMAT(IVA, 'N6', 'es-mx') AS IVA FROM Venta_Producto

Retorna:

0.160000 o 0.080000 según sea el valor registrado en el campo IVA.

Una prueba más rápida la puedes hacer con:

SELECT FORMAT(0.16, 'N6', 'es-mx') AS IVA

Es importante señalar la región porque por defecto retornará:

0,160000

Solución: Mensaje 5094 o 4922 al modificar una columna en SQL Server

Cuando intentas modificar el tipo de dato de una columna en SQL Server con una instrucción ALTER COLUM, podría ocurrir que te de un error/mensaje:

5074 - El objeto 'DF_Tabla_Columna' de tipo objeto es dependiente de columna 'Columna'.

Donde DF_Tabla_Columna, es el nombre de la restricción y Columna es el nombre de la columna.

Significa que hay una restricción asociada a la columna que intentas modificar. También te puede dar el siguiente error:

Error de ALTER TABLE ALTER COLUMN ### debido a que uno o más objetos tienen acceso a esta columna.

De nuevo, el mismo significado.

¿Cómo solucionarlo?

Debes primero eliminar la restricción asociada. Suponiendo que tu restricción se llame: DF_Tabla_Columna debes ejecutar la instrucción:

ALTER TABLE tabla DROP CONSTRAINT DF_Tabla_Columna

Y ahora sí ejecuta, la instrucción ALTER COLUM.

Ten en cuenta que debes restaurar o volver a crear la restricción que eliminaste. Puedes hacerlo con la instrucción:

ALTER TABLE tabla ADD CONSTRAINT [...]

Error: fallo en la llamada a la función dll: netfinder.fbuscarecurso en Contpaq i Facturación Electrónica

Al instalar Contpaq i Facturación electrónica, particularmente como Servidor, generar el error: fallo en la llamada a la función dll: netfinder.fbuscarecurso.

Solución:

  1. Compartir manualmente la carpeta de Empresas (C:\Compacw\Empresas) y darle permisos de lectura y escritura.
  2. Usar la ruta relativa no absoluta. Es decir en lugar de que en la instalación tenga: C:\compacw\Empresas, usa \\MiPC\Empresas. Donde esta última ruta debe ser la ruta de la carpeta compartida. Sustituye MiPC por el nombre de esa
  3. Listo. Solucionado! Dale siguiente

Arreglo de parámetros en una función de VBA con ParamArray

Hace poco me programé una función para armar consultar de SQL Server desde VBA, pero de manera que cada parámetro fuese una línea de la consulta. Descubrí ParamArray que es basicamente un arreglo de parámetros en una función.

Esto también puede servir cuando no sabes cuantos parametros vas a recibir, pero sí que operación vas a hacer con esos parámetros. Se me ocurre por ejemplo, sumar todos los parametros que reciba la función. Vamos a ella:

Public Function SumarValores(ParamArray N()) as Double
  Dim ResultadoSuma as Double
  ResultadoSuma = 0
  Dim item As Variant
  If Ubound(N) >=0 then
    For Each item In N
      ResultadoSuma = ResultadoSuma + N
    Next
  End if
  SumarValores = ResultadoSuma
End Function

Con esto estaremos sumando todos los valores que recibamos como parámetros. Ya podrías validar si en efecto el parámetro es número o demás.

Se puede llamar así desde la consola o vista inmediato (CTRL + G):

?SumarValores(10,20,30,40,50)
?SumarValores(1,50,20)

Usa ParamArray 🙂