Foros del Web » Programación para mayores de 30 ;) » .NET »

Update-Access

Estas en el tema de Update-Access en el foro de .NET en Foros del Web. Hola, estoy accediendo a una base de datos en Access. Cuando hago lecturas no tengo problemas pero a la hora de hacer algún cambio (por ...
  #1 (permalink)  
Antiguo 31/05/2004, 08:44
 
Fecha de Ingreso: abril-2002
Mensajes: 14
Antigüedad: 22 años
Puntos: 0
Pregunta Update-Access

Hola,

estoy accediendo a una base de datos en Access. Cuando hago lecturas no tengo problemas pero a la hora de hacer algún cambio (por ejemplo una update en alguna tabla) me dice que necesita usar una consulta actualizable. Ya he comprobado que la base de datos tiene permisos de escritura y la carpeta donde está ubicada (dentro de la carpeta de la aplicación) le he puesto también estos permisos. Esto último lo he hecho accediendo a "Panel de control-> Sitios web->Sitio web predeterminado->directorio virtual de la aplicación->carpeta que guarda la base de datos" y en esta he accedido a sus propiedades (botón derecho->propiedades) y he marcado la opción de Escritura. ¿Qué hago mal? El código es muy sencillo:

Private Sub cmdActualizo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdActualizo.Click
Dim miConexion As OleDbConnection
Dim miComando As OleDbCommand
Dim strConexion As String
Dim strSql As String
Dim intRegistros As Integer


strConexion = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("BaseDatos/colegio.mdb") & ";"

Try
miConexion = New OleDbConnection(strConexion)
strSql = "UPDATE ESTUDIANTES "
'Los datos se recogen de diversos controles Web 'TextBox'.
strSql &= "SET EXP_EST = " & cmbEstudiantes.SelectedItem.Value & ", NOM_EST = '" & txtNombre.Text & "', F_N_EST = #" & txtFNacimiento.Text & "#, DIR_EST= '" & txtdireccion.Text
strSql &= "' WHERE EXP_EST = " & cmbEstudiantes.SelectedItem.Value

miComando = New OleDbCommand(strSql, miConexion)
miConexion.Open()
intRegistros = miComando.ExecuteNonQuery
lblResul.Text = intRegistros.ToString & " registro modificado."
miConexion.Close()

Catch ex As Exception
lblResul.Text = "Error al actualizar los estudiantes."
lblResul.Text &= "<br>" & ex.ToString
End Try

If Not miConexion Is Nothing Then
miConexion.Close()
End If
End Sub

La instrucción de sql está bien porque la he recogido el ejecutar la aplicación (debugando) y la he pasado y ejecutado en Access y no me ha dado problemas.
¿Me podeis ayudar? ¿Me falta algún otro permiso?
Gracias.
  #2 (permalink)  
Antiguo 31/05/2004, 08:54
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola
El problema es que en Windows xp, tienes que dar permisos al archivo de la base de datos (pero permisos NTFS ). Desde el explorador de Windows vete a Herramientas -> Opciones de carpeta -> Ver (creo que es ahí, es que ahora estoy en un NT) y quitas la marca a "Habilitar uso compartido simple de archivos (recomendado)". Despues te vas a tu archivo .mdb (el archivo de la base de datos) y con el boton derecho del ratón seleccionas la ficha "seguridad", marcas el grupo "Usuarios" (tambien puede poner "todos") y le das control total. Después de esto deberia funcionar.

Saludos
  #3 (permalink)  
Antiguo 31/05/2004, 09:00
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Ya intentaste directamente sobre tu archivo mdb hacer boton derecha y quitarle el atributo "read/only" ?

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 31/05/2004, 09:09
 
Fecha de Ingreso: abril-2002
Mensajes: 14
Antigüedad: 22 años
Puntos: 0
Hola otra vez,

muchísimas gracias lucxx. He hecho lo que me has comentado y ahora si que va. Gracias, gracias,...

Hasta otra.
  #5 (permalink)  
Antiguo 31/05/2004, 09:29
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
De nada, para eso estamos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:11.