Programación Básica Access Basic Pág 1 de 4 Programas en VBA . Realiza el ordinograma de cada programa. Sub programa01() 'Muestra mensaje en cuadro diálogo MsgBox ("Hola Bienvenido") End Sub Explica la sentencia MsgBox Sub programa02() 'Pide un dato por teclado y lo muestra dato = InputBox("Dame un dato") MsgBox ("Ha tecleado " & dato) End Sub Función InputBox. Sub programa03() 'Muestra el mayor de dos números dados por teclado x = Val(InputBox("Primer numero:")) y = Val(InputBox("Segundo numero:")) If x > y Then MsgBox ("el mayor es:" & x) Else MsgBox ("el mayor es:" & y) End If End Sub Función Val. Sub programa04() 'Cuenta desde 1 hasta el número dado por teclado x = Val(InputBox("Numero:")) For i = 1 To x Debug.Print i Next i End Sub Forma genérica bucle Para. Sub programa05() 'Muestra todos los divisores de un numero entero x = Val(InputBox("Numero:")) For i = 1 To x \ 2 If x Mod i = 0 Then Debug.Print i Next i End Sub Operadores aritméticos. Sub programa06() 'Numeros impares de 1 a 100 For x = 1 To 100 Step 2 Debug.Print x Next x End Sub Step en bucles Para Diferencia entre sentencia y función Símbolo & Forma genérica de estructura alternativa doble. Sentencia Debug.Print Condicional Simple Programación Básica Access Basic Pág 2 de 4 Cadena nula. Sub programa07() 'Pide una clave hasta teclear manjon x = "" Do While x <> "manjon" x = InputBox("Palabra clave:") Loop MsgBox ("Clave correcta") End Sub Operadores relacionales. Forma genérica bucle Mientras. Sub programa08() 'Muetra si un numero es primo o no x = Val(InputBox("Teclee numero entero:")) primo = True For i = 2 To x \ 2 If x Mod i = 0 Then primo = False Next i If primo Then MsgBox ("Es Primo") Else MsgBox ("No es primo") End If End Sub Uso de flags o indicadores Sub programa09() 'Area y perimetro de un triángulo rectángulo Dim base, altura As Double base = Val(InputBox("Valor de la base:")) altura = Val(InputBox("Valor de la altura:")) hipotenusa = Sqr(base ^ 2 + altura ^ 2) area = base * altura / 2 perimetro = base + altura + hipotenusa Debug.Print ("Area=" & area) Debug.Print ("Perímetro=" & perimetro) Debug.Print (hipotenusa) Debug.Print (altura) Debug.Print (base) End Sub Declaración variables Dim. Sub programa10() 'Muestra quiere continuar s/n hasta pulsar n Dim sino As String * 1 Do sino = InputBox("¿Quiere continuar s/n?") Loop Until sino = "n" Or sino = "N" End Sub Estructura Repetir Hasta. Sub Programa11() 'Pide la base de una factura, calcula el iva 16% y el total Dim base, iva, total As Double base = Val(InputBox("Valor de la base")) iva = base * 0.16 total = base + iva Debug.Print ("base Imponible=" & base & "€") Debug.Print ("i.v.a.=" & iva & "€") Debug.Print ("Total=" & total & "€") End Sub Tipos de datos. Estructura típica Secuencial. Entrada, Proceso, Salida Programación Básica Access Basic Sub Programa12() 'Suma los 100 primeros numeros naturales Dim suma suma = 0 For i = 1 To 100 suma = suma + i Next i Debug.Print ("La suma es:" & suma) End Sub Pág 3 de 4 Acumuladores. suma Sub Programa13() 'Factorial de un numero Dim factorial As Double n = Val(InputBox("Numero natural:")) If n > 1 Then factorial = 1 For i = 1 To n factorial = factorial * i Next i Else factorial = 1 End If MsgBox ("Su factorial es:" & factorial) End Sub Sub programa14() 'Muestra el dia de semanade una fecha Dim x As Date x = InputBox("dame fecha(dd/mm/aaaa):") Select Case Weekday(x) Case 1 Debug.Print ("Domingo") Case 2 Debug.Print ("Lunes") Case 3 Debug.Print ("Martes") Case 4 Debug.Print ("Miercoles") Case 5 Debug.Print ("Jueves") Case 6 Debug.Print ("Viernes Por fin") Case 7 Debug.Print ("Sabado") End Select End Sub Sub programa15() 'Trabajo con cadenas de caracteres Dim frase As String frase = InputBox("Introduzca una frase") frase = UCase(frase) longitud = Len(frase) izq = Left(frase, 1) der = Right(frase, 1) mitad = Mid(frase, longitud \ 2 + 1, 1) reves = "" vocales = 0 For i = 1 To longitud reves = Mid(frase, i, 1) & reves Select Case Mid(frase, i, 1) Case "A" vocales = vocales + 1 Selectiva múltiple. Cadena de caracteres. Funciones con cadenas de caracteres Programación Básica Access Basic Pág 4 de 4 Case "E" vocales = vocales + 1 Case "I" vocales = vocales + 1 Case "O" vocales = vocales + 1 Case "U" vocales = vocales + 1 End Select Next i Debug.Print ("Frase inicial mausculas:" & frase) Debug.Print ("Primer caracter:" & izq) Debug.Print ("Ultimo caracter:" & der) Debug.Print ("Caracter central:" & mitad) Debug.Print ("Frase al reves:" & reves) Debug.Print ("total de vocales:" & vocales) End Sub Sub programa16() 'Genera 6 numeros aleatorios entre 1 y 49 Randomize Timer For i = 1 To 6 Debug.Print Int(Rnd * 49) + 1 Next i End Sub Sub programa17() 'Adivine un numero entre 1 y 100 Dim x, n As Integer Randomize Timer x = Int(Rnd * 100) + 1 intentos = 0 Do n = Val(InputBox("Adivine el numero:")) intentos = intentos + 1 If n > x Then MsgBox ("Es menor, total intentos=" & intentos) If n < x Then MsgBox ("Es mayor, total intentos=" & intentos) Loop Until x = n MsgBox ("ACERTÓ, INTENTOS =" & intentos) Select Case intentos Case Is < 10 MsgBox ("MUY BIEN") Case Is < 15 MsgBox ("BIEN") Case Is < 20 MsgBox ("REGULAR") Case Else MsgBox ("MAL") End Select End Sub Función aleatoria