Access - Campo Sí/No Access con SQL SERVER

 
Vista:

Campo Sí/No Access con SQL SERVER

Publicado por Roberto (145 intervenciones) el 17/06/2013 17:59:32
Hola a todos. Estoy migrando mi bd de Access hacia SQL SERVER 2005 y al probar si me funcionan bien o no todos los formularios , consultas e informes he detectado que en los campos de tipo Si/No solo deja trabajar ahora con Verdadero y Falso y no con 0 y -1 . Claro todas las consultas que tengo están filtradas así con 0 ó -1 y claro la bd es bastante grande. Mi pregunta es si en la tabla de SQL SERVER se puede configurar el campo de verdadero/falso de alguna manera para que admita trabajar tambien con 0 y -1.
Otra cuestion sobre este tema tambien es la siguiente: En algunas partes del código al hacer un RecordSet me dá este error: "Debe usar la opcion dbSeechanges con openrecorset al tener acceso a una tabla de SQL SERVER que tenga una columna IDENTITY. El tema es que los dos campos que compara en el recordset se llaman igual . Puede que sea por eso.

Si hay que introducir la opcion dbSeechanges agradecería algún ejemplo para saber un poco que es lo que tengo que cambiar en el código.

La verdad es que hacia falta ya migrar a SQL SERVER pq la bd se está haciendo cada vez más grande y necesitaba algo más de seguridad tambien. Pero claro que te dén tantos errores cuando ya tienes la bd hecha y funcionando bien pues es un fastidio.

Venga un saludo y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Campo Sí/No Access con SQL SERVER

Publicado por deneg_nhj (348 intervenciones) el 17/06/2013 23:20:13
Hola Roberto

a) Los campos de lógicos de Access, se convierten a un tipo Bit el cual solo acepta 0 o 1 al menos eso sucede con SQL 2008. Te sugiero cambiar a 0 /1 ,para que no vayas contracorriente. Ademas si vinculas las tablas por ODBC access convierte de manera automática los valores a True/False.

b) Para el caso de dbSeeChanges, aqui está un ejemplo

1
Currentdb.Execute sSQL1, dbFailOnError + dbSeeChanges



ó

1
Set rsTemp = CurrentDb.OpenRecordset("SELECT * FROM xTabla WHERE xCampoID = " & xValor, 2, dbSeeChanges)




Mira este link http://msdn.microsoft.com/en-us/library/office/bb225803(v=office.12).aspx para más referencias de OpenRecordset


Saludos
deneg_nhj
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Campo Sí/No Access con SQL SERVER

Publicado por ROBERTO (145 intervenciones) el 18/06/2013 09:07:48
Muchas gracias por tu aclaracion. Me parece que me toca corregir todo el código de la bd para adaptarla al nuevo sistema SQL SERVER. Bueno a la larga merecerá la pena. Un saludo y muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Campo Sí/No Access con SQL SERVER

Publicado por Beni (23 intervenciones) el 19/06/2013 10:07:51
Hola:

Yo trabajo con SQL Server, así que aprovecharé para hacer un inciso.

En Access los datos verdadero/falso se contemplan como -1/0 como bien sabes
Tal y como dijo deneg, en SQL Server su símil es el tipo BIT, que usa 1/0

Pero al vincular una tabla con un campo tipo bit el valor que se sigue viendo en Access es -1/0.
Por ello yo siempre que comparo uso esta notación:
WHERE Campo=0 'si el campo es falso
WHERE Campo<>0 'si el campo es cierto

Con esto te aseguras siempre el falso/cierto. Porque de otra forma se complica un poco, puesto que:
WHERE Campo=1

esto si lo haces sobre una tabla vinculada busca correctamente los datos TRUE, pero si usaras una tabla local de access, esto no te devolvería las líneas que sean TRUE. Por ello te aconsejo acostumbrarte mejor al =/<>.

Suerte ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar