Conversion base Acess vers SQL

Résolu
ordilibre -  
blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Me voilà confronté à la transcription d'une BDD Access vers SQL.
Tout va bien concernant les tables et les vues.
Par contre, dans access, je disposais de fonctions en VBA qui me permetaient d'insérer dans une colonne d'une requête un calcul du genre:

function qté (CA as double, Qté as double, qté2 as double) as double
if CA<0 et Qté>0 then qté=qté2
end function

Il me suffisait alors dans la requête Access, d'utiliser la fonction "qté (Ca, Qté, qté2)" dans une colonne et le tour était joué.

Comment puis-je reproduire ce principe dans SQL? Dois je utiliser plutot les "fonctions définies par utilisateur" ou les "procédures stockées"? Comment s'en servir dans les vues?

Ou puis je trouver un site claire présentant le sujet?

Merci d'avance de vos tuyaux et bonne journée.

8 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Dans la barre de menu Access -> Outils -> Utilitaires de base de données -> Assistant de migration SQL Serveur, puis suivre les instructions.

    ;o)

    Polux
    4
  2. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Bonjour,

    SQL n'est pas une base de données, mais un langage d'interrogation...

    Nous ne pourrons pas t'aider tant que tu ne nous auras pas dit vers quel SGBDR tu veux migrer :

    ORACLE, SQL Server, MySQL, DB2, Ingres, Informix...?
    1
  3. ordilibre
     
    Oui, biensûr. Il s'agit d'une migration vers SQL server.
    1
  4. deus Messages postés 93 Statut Membre 91
     
    Salut,

    a priori tu peux utiliser une User Defined function pour faire ça.
    Si tu as Sql Server tu as probablement le BookOnline (fais F1 à partir du Entreprise Manager/query analyser).
    C'est assez complet.
    pour info voilà un exemple qui s'y trouve et qui pourrait t'aider:

    CREATE FUNCTION ISOweek (@DATE datetime)
    RETURNS int
    AS
    BEGIN
    DECLARE @ISOweek int
    SET @ISOweek= DATEPART(wk,@DATE)+1
    -DATEPART(wk,CAST(DATEPART(yy,@DATE) as CHAR(4))+'0104')
    --Special cases: Jan 1-3 may belong to the previous year
    IF (@ISOweek=0)
    SET @ISOweek=dbo.ISOweek(CAST(DATEPART(yy,@DATE)-1
    AS CHAR(4))+'12'+ CAST(24+DATEPART(DAY,@DATE) AS CHAR(2)))+1
    --Special case: Dec 29-31 may belong to the next year
    IF ((DATEPART(mm,@DATE)=12) AND
    ((DATEPART(dd,@DATE)-DATEPART(dw,@DATE))>= 28))
    SET @ISOweek=1
    RETURN(@ISOweek)
    END

    ciao
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ordilibre
     
    Un grand merci.

    C'est effectivement comme cela que je vais m'y prendre.
    Après une matinée de recherche, j'ai finalement trouvé.
    J'ai buté un moment sur la définition d'une variable qui nécessite un @ dans sql server. C'est bête mais encore faut il le savoir.

    Merci pour le lien vers l'aide.
    0
  7. archnumrtt
     
    salut

    j'ai une base de donnee access je veux la convertir en sql server pouvez vous m'aider

    merci
    archnumrtt
    a+
    0
  8. ALT
     
    Bonjour a tous,
    Je souhaite exploiter une base de donnée access sur PHP

    Est il possible de la part de php de travailler avec access
    Le but final est de creer un site web dynamiques pour exploiter ma base access
    Merci
    0
  9. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Oui, tu peux accéder à ta base access via odbc sous php

    https://www.php.net/odbc
    0