Como Condiciono un dato de mi base de Datos

Nuevamente yo consultándote me Hisciste favor de enviarme una solución la cual la plique; Te envío el Código ya que si me hace lo que quiero pero al decirle que no quiero asignar el folio me marca un error en la parte
Private Sub Dependencia()
Select Case Me.[Tipo_Sol]
Case "2", "3", "4", "6"
  IdDependencia.Enabled = False
Case Else
  IdDependencia.Enabled = True
End Select
End Sub
Este es mi codigo Completo:
Public Sub ASIGNA_FOLIO()
Dim MSJ As String
Dim RSP As String
MSJ = "Desea asignar un folio a este registro....?"
RSP = MsgBox(MSJ, vbYesNo, "MENSAJE DEL SISTEMA")
If RSP = vbNo Then
MsgBox "No se asignará ningun folio a este registro", vbInformation, "MENSAJE DEL SISTEMA"
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
DoCmd.Close
Else
'Dimensionamiento de Variables
Dim db As Database
Dim rs As Recordset
Dim strSQL As String
Dim REG As Long
Dim RS1 As Recordset
Dim strSQL1 As String
Dim REG1 As Long
Dim UF As Integer
Dim NF As Integer
Dim C As Long
Dim U As Long
'Crea la intruccion SQL para llenar el recordset
Set db = CurrentDb
If [Tipo_Sol] = 2 Then
Me.Refresh
'Obtengo el conscutivo
strSQL = "SELECT * FROM [Folios ASE];"
Set rs = db.OpenRecordset(strSQL)
C = rs!Consecutivo
U = rs!Ultimo_Utilizado
MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE LA ASE"
strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;"
Set RS1 = db.OpenRecordset(strSQL1)
[REG1] = RS1.RecordCount
RS1.Edit
RS1!Folio = "ASE" & "-" & C & "-" & Format(Now, "yyyy")
RS1.Update
RS1.Bookmark = RS1.LastModified
RS1.Close
Me.Refresh
rs.Edit
rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1
rs!Consecutivo = rs!Consecutivo + 1
rs.Update
rs.Bookmark = rs.LastModified
rs.Close
Me.Refresh
Else
If [Tipo_Sol] = 3 Then
Me.Refresh
'Obtengo el conscutivo
strSQL = "SELECT * FROM [Folios RDF];"
Set rs = db.OpenRecordset(strSQL)
C = rs!Consecutivo
U = rs!Ultimo_Utilizado
MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE Reclusorios del DF"
strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;"
Set RS1 = db.OpenRecordset(strSQL1)
[REG1] = RS1.RecordCount
RS1.Edit
RS1!Folio = "RDF" & "-" & C & "-" & Format(Now, "yyyy")
RS1.Update
RS1.Bookmark = RS1.LastModified
RS1.Close
Me.Refresh
rs.Edit
rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1
rs!Consecutivo = rs!Consecutivo + 1
rs.Update
rs.Bookmark = rs.LastModified
rs.Close
Me.Refresh
Else
If [Tipo_Sol] = 4 Then
Me.Refresh
'Obtengo el conscutivo
strSQL = "SELECT * FROM [Folios RED];"
Set rs = db.OpenRecordset(strSQL)
C = rs!Consecutivo
U = rs!Ultimo_Utilizado
MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE Reclusorios del Estado"
strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;"
Set RS1 = db.OpenRecordset(strSQL1)
[REG1] = RS1.RecordCount
RS1.Edit
RS1!Folio = "RED" & "-" & C & "-" & Format(Now, "yyyy")
RS1.Update
RS1.Bookmark = RS1.LastModified
RS1.Close
Me.Refresh
rs.Edit
rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1
rs!Consecutivo = rs!Consecutivo + 1
rs.Update
rs.Bookmark = rs.LastModified
rs.Close
Me.Refresh
Else
If [Tipo_Sol] = 5 Then
Me.Refresh
'Obtengo el conscutivo
strSQL = "SELECT * FROM [Folios MPI];"
Set rs = db.OpenRecordset(strSQL)
C = rs!Consecutivo
U = rs!Ultimo_Utilizado
MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE Materia Prima por Incidencia"
strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;"
Set RS1 = db.OpenRecordset(strSQL1)
[REG1] = RS1.RecordCount
RS1.Edit
RS1!Folio = "MPI" & "-" & C & "-" & Format(Now, "yyyy")
RS1.Update
RS1.Bookmark = RS1.LastModified
RS1.Close
Me.Refresh
rs.Edit
rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1
rs!Consecutivo = rs!Consecutivo + 1
rs.Update
rs.Bookmark = rs.LastModified
rs.Close
Me.Refresh
Else
If [Tipo_Sol] = 6 Then
Me.Refresh
'Obtengo el conscutivo
strSQL = "SELECT * FROM [Folios GAO];"
Set rs = db.OpenRecordset(strSQL)
C = rs!Consecutivo
U = rs!Ultimo_Utilizado
MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE Gastos de Operacion"
strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;"
Set RS1 = db.OpenRecordset(strSQL1)
[REG1] = RS1.RecordCount
RS1.Edit
RS1!Folio = "GAO" & "-" & C & "-" & Format(Now, "yyyy")
RS1.Update
RS1.Bookmark = RS1.LastModified
RS1.Close
Me.Refresh
rs.Edit
rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1
rs!Consecutivo = rs!Consecutivo + 1
rs.Update
rs.Bookmark = rs.LastModified
rs.Close
Me.Refresh
Else
If [Tipo_Sol] = 7 Then
Me.Refresh
'Obtengo el conscutivo
strSQL = "SELECT * FROM [Folios MTO];"
Set rs = db.OpenRecordset(strSQL)
C = rs!Consecutivo
U = rs!Ultimo_Utilizado
MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE Mantenimiento"
strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;"
Set RS1 = db.OpenRecordset(strSQL1)
[REG1] = RS1.RecordCount
RS1.Edit
RS1!Folio = "MTO" & "-" & C & "-" & Format(Now, "yyyy")
RS1.Update
RS1.Bookmark = RS1.LastModified
RS1.Close
Me.Refresh
rs.Edit
rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1
rs!Consecutivo = rs!Consecutivo + 1
rs.Update
rs.Bookmark = rs.LastModified
rs.Close
Me.Refresh
End If
Me.Refresh
End If
End If
End If
End If
End If
End If
End Sub
Private Sub Form_Current()
Dependencia1
End Sub
Private Sub Tipo_Sol_AfterUpdate()
ASIGNA_FOLIO
Dependencia
End Sub
Private Sub Dependencia()
Select Case Me.[Tipo_Sol]
Case "2", "3", "4", "6"
  IdDependencia.Enabled = False
Case Else
  IdDependencia.Enabled = True
End Select
End Sub
Private Sub Dependencia1()
Select Case Me.[Tipo_Sol]
Case "ASE", "RED", "RDF", "GAO"
  IdDependencia.Enabled =...

1 respuesta

Respuesta
1
Me gustaría saber cual es el error y donde se genera el error .
Por otro lado debes tener cuidado con los datos nulos por ejemplo si tu campo tiene un valor nulo y lo campatras con un texto o un numero te generara un error por que son diferentes tipos de datos, por lo que deberías validar los datos, por ejemplo:
select case (me .tipo_sol & "")
case "ASE" ,.....etc, etc
o
select case val(me.tipo_sol & "")
case 2,3,4,6  ... etc
Al concatenar con "" el valor nulor se pierde y se puede comparar
El error es el Siguiente:
Se ha producido el error '2476' en tiempo de ejecución:
La expresión que ha especificado hace referencia a un objeto que esta cerrado o no existe
Y al darle depurar me envía al código
Private Sub Dependencia()
Select Case Me.[Tipo_Sol]
Case "2", "3", "4", "6"
  IdDependencia.Enabled = False
Case Else
  IdDependencia.Enabled = True
End Select
End Sub
Sin más por el Momento y en espera de que me puedas ayudar.
Gracias
El objeto IdDependencia debe estar en tu formulario. Es decir que debe ser un cuadro de texto o un combobox, IdDepedencia no solo debe figurar como origen del objeto sino también como nombre del objeto
Es lo que puedo decirte...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas