jueves, 4 de diciembre de 2008

VBA Excel: Brain Training


Sub InventarOperaciones()
    Dim i As Integer
    Dim NumOperaciones As Integer
    Dim operacion As String
    NumOperaciones = 10
    For i = 1 To NumOperaciones
        Cells(i, 1) = Int((Rnd * 10) + 1)
        operacion = Int((Rnd * 3) + 1)
        If operacion = "1" Then operacion = "+"
        If operacion = "2" Then operacion = "-"
        If operacion = "3" Then operacion = "*"
        Cells(i, 2) = operacion
        Cells(i, 3) = Int((Rnd * 10) + 1)
        Cells(i, 4) = ""
        Cells(i, 5) = ""
    Next
    Cells(1, 4).Select
End Sub

Sub ComprobarOperaciones()
    Dim i As Integer
    Dim NumOperaciones As Integer
    Dim operacion As String
    Dim resultado As Integer
    Dim puntos As Integer
    NumOperaciones = 10
    puntos = 0
    For i = 1 To NumOperaciones
        operacion = Cells(i, 2)
        If operacion = "+" Then resultado = Cells(i, 1) + Cells(i, 3)
        If operacion = "-" Then resultado = Cells(i, 1) - Cells(i, 3)
        If operacion = "*" Then resultado = Cells(i, 1) * Cells(i, 3)
        If Cells(i, 4) = resultado Then
            Cells(i, 5) = "OK"
            puntos = puntos + 1
        Else
            Cells(i, 5) = resultado
        End If
        
    Next
    MsgBox "PUNTOS:" & puntos
End Sub

martes, 2 de diciembre de 2008

Access VBA: Realizar una consulta por código


Private Sub tipo_AfterUpdate()
    Dim r As DAO.Recordset
    Dim db As DAO.Database
    Dim SQL As String
    Set db = CurrentDb
    SQL = "select * from servicios where codservicio=" & tipo
    Set r = db.OpenRecordset(SQL)
    descripcion = r(1)
    precio = r(2)
End Sub

jueves, 20 de noviembre de 2008

Excel VBA: Crear tablas de multiplicar


Sub Prueba()
    For i = 1 To 10
        For j = 1 To 10
            Range(Cells(i, j), Cells(i, j)).Select
            ActiveCell.FormulaR1C1 = i & "x" & j & "=" & i * j
        Next
    Next
End Sub

jueves, 6 de noviembre de 2008

Access: Consulta de eliminación con más de una tabla

Si se intentan borrar registros como "productos de la familia pescados", si hay dos tablas involucradas sale el siguiente mensaje:

"Especifique la tabla que contiene los registros que desea eliminar."

Para hacer esto se debe poner en la consulta el asterisco (*) de la tabla que contiene los registros a eliminar y los campos imprescindibles del resto de la consulta

jueves, 21 de agosto de 2008

JavaScript: Acceder al valor de un RadioButton

Esta función devuelve el valor seleccionado en un grupo de botones de opción (RadioButton).


function getRadioButtonSelectedValue(ctrl)

{

    for(i=0;i<ctrl.length;i++)

        if(ctrl[i].checked) return ctrl[i].value;

}




Se la debe llamar como valor=getRadioButtonSelectedValue(document.formulario.nombreradio);

martes, 19 de agosto de 2008

Calcular la edad de una persona

En Excel

Siendo A2 el lugar donde está la fecha de nacimiento.

=AÑO(HOY())-AÑO(A2)-1 + (MES(HOY())>MES(A2)) + (MES(A2)=MES(HOY()))*(DIA(HOY())>=DIA(A2))

En Access

En un módulo se pone este código.

Function Edad (FechaNacimiento As Variant) As Integer
       Dim miEdad As Variant
      If IsNull(FechaNacimiento) then Edad = 0: Exit Function
      miEdad = DateDiff("yyyy", FechaNacimiento, Now)
      If Date < DateSerial(Year(Now), Month(FechaNacimiento)_
, Day(FechaNacimiento)) Then
         miEdad = miEdad - 1
      End If
      Edad = CInt(miEdad)
    End Function



Ya se puede usar en las consultas.

miércoles, 13 de agosto de 2008

Error en PHP: Cannot modify header information

Si sale este mensaje en PHP

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/home/html/tienda/includes/languages/espanol/modules/payment/banktransfer.php:26) in /var/www/vhost/home/html/tienda/includes/functions/general.php on line 33

Significa que se ha enviado una respuesta antes de terminar con las cabeceras. Este error suele solucionarse mirando los dos ficheros que comenta (seguramente el primero) y borrar los espacios que pudiera haber antes de la marca <?php y despues de ?>