Programación de una Tabla en Access

Hola quiero preguntarle lo siguiente, resulta que tengo el siguiente código en una Macro VBA en Excel, para calcular el rango de notas dependiendo del numero de preguntas que se pidan en una prueba:
Sub Carasonriente_Haga_clic_en()
Dim k, n, nmax, nmin As Integer
Dim i, l, nrc, npreg As Integer
nmax = Cells(2, 6)  ' Campo en una tabla llamada Materias valor predeternminado 50
nmin = Cells(3, 6)  ' Campo en una tabla llamada Materias valor predeternminado 10
npreg = Cells(4, 6) ' Campo de la tabla Materias llamado Numerodepreguntas
 n = 10             ' valor predeterminado en la tabla Materias
 'l = 0
 For i = 1 To npreg + 1
  k = (nmax - nmin) / npreg
  n = n + k
  Cells(i, 1) = i - 1
  Cells(i, 2) = n - k
 Next i
End Sub
Necesito saber como puedo crear dicho proceso en Access pero ya sea para una tabla o una consulta, los valores para nmax, nmin, npreg y n, yo los puedo pedir por formulario en Access, pero necesito saber como haría dicho proceso en Access no se si con un trigger, un modulo en VBA.
Gracias
Att. Hernán Camilo!

1 Respuesta

Respuesta
1
Olvida un poco lo que tienes en excel y dime exactamente los datos que tendrías y lo que quieres conseguir.
Hola los siguientes datos los puedo digitar:
Nmax (Nota Máxima) que para nuestro caso es de 50, Nmin (Nota mínima) en nuestro caso es 10, Npreg (Numero de preguntas) esto los digita el usuario, puede ser 25 para nuestro ejemplo,
lo que deseo es que en Access en una primera columna de una Tabla me autoincremente en uno el numero de preguntas desde 0 hasta Npreg (Numero de preguntas), y en la segunda columna me incremente los rangos de acuerdo al código que le envíe en VBA.
Gracias!
Att. Hernán Camilo.
La tabla la llamo NumPreguntas, con los campos Usuario, NMax, NMin, NPreg. La función sería:
Function Num_Preguntas()
Dim db As Database
Dim rs As Recordset
Dim vUsu As String
Dim vNPreg As Integer
Dim vCont As Integer
Set db = CurrentDb
vUsu = InputBox("Introducir Usuario")
vNPreg = InputBox("Introducir nº de preguntas")
Set rs = db.OpenRecordset("NumPreguntas")
vCont = 0
Do While vCont <= vNPreg
DoCmd.RunSQL "Insert Into NumPreguntas (Usuario, NPreg, NMax, NMin) Values ('" & vUsu & "', " & vCont & ",50,10)"
vCont = vCont + 1
Loop
End Function
Saludos, Angeles
*Me voy de vacaciones, por lo que solo hoy y posiblemente mañana estaré disponible para atender preguntas.
Hola como esta, agradezco su interés por mi proyecto, lo que deseo no es insertar valores mediante código desde un formulario, (Esto ya lo logre mediante un formulario de ingreso de datos (Nmax, Nmin, QUE y N)), lo que deseo es´poder realizar el siguiente proceso que ya esta hecho dentro de una Macro que desarrolle en Excel ahora en Access:
Sub Carasonriente_Haga_clic_en()
Dim k, n, nmax, nmin As Integer
Dim i, l, nrc, npreg As Integer
nmax = Cells(2, 6)  ' Campo en una tabla llamada Materias valor predeternminado 50
nmin = Cells(3, 6)  ' Campo en una tabla llamada Materias valor predeternminado 10
npreg = Cells(4, 6) ' Campo de la tabla Materias llamado Numerodepreguntas
 n = 10             ' valor predeterminado en la tabla Materias
 'l = 0
 For i = 1 To npreg + 1
  k = (nmax - nmin) / npreg
  n = n + k
  Cells(i, 1) = i - 1
  Cells(i, 2) = n - k
 Next i
End Sub
Desarrolle en Access una tabla que se llama Puntaciones y que tiene los siguientes campos:
Nmax, Nmin,Nreg,Npreg
Esta tabla como le comente anteriormente aloja los registros desde un formulario, lo que deseo es que en una consulta o en una tabla me muestre lo siguiente de acuerdo a los registros que he insertado en una tabla... quiero que me muestre:
cells(i,1)    cells(i,2)
0 10
1 12.5
2 15
3 17.5
4 20
5 22.5
6 25
7 27.5
8 30
9 32.5
10 35
11 37.5
12 40
13 42.5
14 45
15 47.5
16 50
Los valores de cells(i, 1) cells(i, 2) proveienen del código de la Macro en Excel
Este resultado es el que necesito en Access ya sea por consulta.
Gracias!
Att. Hernán Camilo
Tabla NumPreguntas (Para 5 preguntas):
Usuario NMax NMin NPreg Rango
Aaaaaaaaaa 50 10 0 10
Aaaaaaaaaa 50 10 1 18
Aaaaaaaaaa 50 10 2 26
Aaaaaaaaaa 50 10 3 34
Aaaaaaaaaa 50 10 4 42
Aaaaaaaaaa 50 10 5 50
Código:
Function Num_Preguntas()
Dim db As Database
Dim rs As Recordset
Dim vUsu As String
Dim vNpreg As Double
Dim vCont As Double
Dim vInc As Double
Dim vRango As Double
Set db = CurrentDb
vUsu = InputBox("Introducir Usuario")
vNpreg = InputBox("Introducir nº de preguntas")
DoCmd.RunSQL "Insert Into NumPreguntas (Usuario, NPreg, NMax, NMin, Rango) Values ('" & vUsu & "', 0,50,10,10)"
Set rs = db.OpenRecordset("NumPreguntas")
vCont = 1
vInc = (50 - 10) / vNpreg
vRango = 10
Do While vCont <= vNpreg
vRango = vRango + vInc
rs.AddNew
rs!Usuario = vUsu
rs!Npreg = vCont
rs!NMax = 50
rs!Nmin = 10
rs!Rango = vRango
rs.Update
vCont = vCont + 1
Loop
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas