Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Défis

Défis Ce forum est celui des défis et challenges Office. Prêts à relever le gant ? C'est parti !

Réponse
 
Outils de la discussion
Vieux 01/02/2008, 13h42   #1 (permalink)
Expert Confirmé
 
Date d'inscription: avril 2006
Localisation: Perpignan
Âge: 36
Messages: 1 564
Par défaut [Exercice] "bien entourer martine"

Bonjour,

je vous propose un nouveau défi:
  • d'abord, le contexte:
    une table: [laTable] et son unique champ: <champ>
    contenant ces données:
[laTable]
<champ>
françoise
daniel
martine
frederic
claude
daniel
andré
...
  • le défis:
    je voudrais une requete qui me permute le 6ème enregistrement avec le 4ème à partir de cette table et ainsi avoir:
    françoise
    daniel
    martine
    daniel
    claude
    frederic
    andré
    ...
tous les coups sont permis!
même les tordus à partir du moment que ca marche.

à vos clavier, et bonne cogitation!


_________________________________________________________________________________________

Résumé
légende: pertinant.
  • 1- proposition de random: le pb c'est que le nb d'enregistrement de la table n'est pas fixe
  • 2- proposition de jpcheck: le résultat n'est pas d'une requete
  • 3- une approche de philben : il ne s'agit pas d'une insertion mais d'une permutation à réaliser
  • le vrai problème de vodiem: trouver une requete qui donne un indice par enregistrement
  • une solution de Maxence HUBICHE : en passant par un adp, solus limitée au table
  • une solution de vodiem : SQL+VBA, solus qui peut être discutable

Dernière modification par vodiem ; 07/02/2008 à 12h00
vodiem est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 13h51   #2 (permalink)
Membre Expert
 
Date d'inscription: juin 2003
Localisation: Sénégal
Messages: 1 162
Par défaut

C'est certainement pas un défi ca.
C'est pour débutant et même pas.
__________________
Amicalement
DMboup est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 14h01   #3 (permalink)
Expert Confirmé
 
Date d'inscription: avril 2006
Localisation: Perpignan
Âge: 36
Messages: 1 564
Par défaut

alors j'attends ta réponse.
vodiem est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 14h23   #4 (permalink)
Expert Confirmé Sénior
 
Date d'inscription: mai 2005
Messages: 3 287
Par défaut

Code :
 
SELECT top 3 nom FROM matable
union all
select last(nom) from (select top 6 nom from matable)
union all
select last(nom) from (select top 5 nom from matable)
union all
select last(nom) from (select top 4 nom from matable)
union all
select last(nom) from (select top 7 nom from matable);
 
heu je ne conseillerais à personne d'utiliser ça, mais ça marche

dmboup votre talent ne vous autorise pas le mépris.
__________________
Elle est pas belle la vie ?
random est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 14h33   #5 (permalink)
Membre Expert
 
Date d'inscription: juin 2003
Localisation: Sénégal
Messages: 1 162
Par défaut

Citation:
Envoyé par random Voir le message
dmboup votre talent ne vous autorise pas le mépris.
Ce n'est pas un mépris. C'est juste la vérité. On attend ici des choses qui donnent à réfléchir sur au moins des mois et pas une question qu'une simple requête résoud sans problème. De plus ne traduit pas un simple message par un point de vu personnel qui de toute facon est très loin de l'idée.

Il ya des questions plus compliquée dans le forum pour autant on ne les retrouvent pas dans les défis.

PS : Lisez les régles.
__________________
Amicalement
DMboup est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 15h04   #6 (permalink)
Expert Confirmé
 
Date d'inscription: avril 2006
Localisation: Perpignan
Âge: 36
Messages: 1 564
Par défaut

j'aime bien ton truc random,

je disais entre 6 et 4 pour simplifier mais je reste indécis sur les valeurs et sur le nombre de personnes.

une requete un peu plus "généraliste" quoi, tu me trouve un truc comme ca?

DMboup> j'attends aussi ta proposition. on dis que tu as du talent j'aimerais le découvrir . pour le moment c'est random qui est en tête.
vodiem est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 15h14   #7 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 910
Envoyer un message via MSN à jpcheck
Par défaut

bonjour, je ne sais pas si on doit répondre en VBA ou en SQL... Ma réponse pour VBA :
Code :
Sub test()
Dim RS As DAO.Recordset
Dim EntreeRang4 As String
Dim EntreeRang6 As String
'préliminaire, afficher le contenu de la table
Set RS = CurrentDb.OpenRecordset("SELECT champs FROM latable;")
 
Do Until RS.EOF
    Debug.Print RS!champs
    RS.MoveNext
Loop
 
'1ere étape récupération des valeurs à échanger, modification dans la foulée du rang6
Set RS = CurrentDb.OpenRecordset("SELECT champs FROM latable;")
 
Do Until RS.EOF
    If Round(RS.PercentPosition * RS.RecordCount / 100, 0) = 3 Then
        EntreeRang4 = RS!champs
        Debug.Print "ancienne valeur 4 = " & RS!champs
    End If
    If Round(RS.PercentPosition * RS.RecordCount / 100, 0) = 5 Then
        EntreeRang6 = RS!champs
        Debug.Print "ancienne valeur 6 = " & RS!champs
        RS.Edit
        RS!champs = EntreeRang4
        RS.Update
    End If
    RS.MoveNext
Loop
'2e étape, modifier le rang4 et lui donner le rang6
Set RS = CurrentDb.OpenRecordset("SELECT champs FROM latable;")
Do Until RS.EOF
    If Round(RS.PercentPosition * RS.RecordCount / 100, 0) = 3 Then
        RS.Edit
        RS!champs = EntreeRang6
        RS.Update
    End If
    RS.MoveNext
Loop
'3e étape, vérifier que la modif a eu lieu:
Set RS = CurrentDb.OpenRecordset("SELECT champs FROM latable;")
 
Do Until RS.EOF
    Debug.Print RS!champs
    RS.MoveNext
Loop
Set RS = Nothing
End Sub
 
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 15h26   #8 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 9 941
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Peux-tu nous expliquer à part trouver le code adéquate, le but de ce déplacement.

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 16h00   #9 (permalink)
Expert Confirmé
 
Date d'inscription: avril 2006
Localisation: Perpignan
Âge: 36
Messages: 1 564
Par défaut

jpcheck>
je te remercie de participer.

oui, tout est permis mais je voulais dans une requete. on va dire: pour ne pas toucher au valeur des tables... (sinon c'est trop facile )
tu me la refais dans une requete et tu auras gagné. (si tu y arrives )

perso j'ai une solus un peu tordu SQL+VBA si ca peut aider...
mais je serais content que vous me fassiez partager vos solutions.

Starec>
Citation:
le but de ce déplacement
comme le dis le titre: pour que "martine" soit bien entourée (de ses "daniels")...
un défi ca doit être avant tout ludique.

mais si tu te penchais sur le pb, peux être reconnaitras tu un pb récurrent.
et si qq'un pouvait répondre de facon satisfaisante cela profiterait à plusieur. ma solution n'apportant pas suffisamment de réponse.
peut être que random voit de quoi je parle?
vodiem est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 16h49   #10 (permalink)
Membre Expert
 
Date d'inscription: juin 2003
Localisation: Sénégal
Messages: 1 162
Par défaut

Citation:
Envoyé par vodiem Voir le message
DMboup> j'attends aussi ta proposition. on dis que tu as du talent ...
Faut pas ce fier au compliment de random (pour le talent que je cherches encore),

J'ai pas encore participé parce que je n'arrives pas à comprendrele but comme le talentueux Starec.

Peut tu nous expliquer plus SVP.

PS : Désolé d'avoir donné une mauvaise impression.
__________________
Amicalement
DMboup est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 17h00   #11 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 9 941
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Citation:
Envoyé par vodiem Voir le message
comme le dis le titre: pour que "martine" soit bien entourée (de ses "daniels")...
un défi ca doit être avant tout ludique.

mais si tu te penchais sur le pb, peux être reconnaitras tu un pb récurrent.
je t'avoue que non (peut-être que c'est Vendredi )

Je suis d'accord sur l'aspect ludique que peut avoir ce défi, mais j'aime bien savoir le pourquoi de la chose.

En effet, ton défi pourrait expliquer le but, pourquoi ? Pour trouver un code générique qui serait utile à tous, car là c'est un peu une particularité que tu veux gérer.

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/02/2008, 17h38   #12 (permalink)
Expert Confirmé
 
Date d'inscription: avril 2006
Localisation: Perpignan
Âge: 36
Messages: 1 564
Par défaut

te répondre serait dévoiller une problématique du sujet qui à si méprendre parait simple, n'es ce pas DMboup?

mais je te mets sur la voie:
comment pourrais tu répondre simplement à ce pb?
tu verras ce qui manque, de là découlera la réponse à vos questions...

autrement prêtez-vous au jeu et livrez moi une solution.
et je rappel le but: gagner...
et puis dites vous: même si vous gagner pas, vous ne perdrez rien non plus.
vodiem est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2008, 09h01   #13 (permalink)
Membre Expert
 
Date d'inscription: avril 2006
Messages: 1 014
Par défaut

bonjour Vodiem,

Une solution que je n'utiliserai pas...
Fonction VBA :
Code :
 
Public Function MaFonction(ByVal s As String, ByVal dNow As Date) As String
   Static sPrec As String, bMartine As Boolean, dTime As Date
   If dNow <> dTime Then
      dTime = dNow
      sPrec = ""
      bMartine = False
   End If
   If Not bMartine Then
      If sPrec = "martine" Then
         MaFonction = "daniel"
         bMartine = True
      Else
         MaFonction = s
      End If
      sPrec = s
   ElseIf sPrec <> "daniel" Then
      MaFonction = sPrec
      sPrec = s
   Else
      MaFonction = s
   End If
End Function
 
Requête :
Code :
 
SELECT
 MaFonction([champ],
 Now()) AS Expr1
FROM
 latable;
 
J'attends de connaître l'utilisation d'un tel truc !

Amicalement,

Philippe
philben est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2008, 10h36   #14 (permalink)
Membre Expert
 
Date d'inscription: mars 2006
Localisation: Fétera son 16éme anniversaire en 2012
Messages: 1 170
Par défaut

Bonjour,

Allez Vodiem, tu peux dévoiler ta cogitation.
Le résultat escompté est atteint. Ceux que tu attendais au coin du bois ont été débusqués. Random et Philben se sont exécutés.
D'autres ont émis quelques remarques, mais raté : Ils ne sont pas tombés dans le piège.
La plupart, comme moi, ont obtenus divers résultats méritants d'être élevés aussitôt à l'honorable grade de détritus. Je me suis heurté la plupart du temps, comme tu l'espérais, au trie alphabétique ou, et numérique.

Alors, après http://www.developpez.net/forums/sho...ighlight=array
Quelles sont tes nouvelles oeuvres?

Cordialement.

Ps : Je suis d'accord avec ceux qui émettent des réserves sur cet exercice. Seul un esprit "torturé" pouvait nous entraîner dans cette voie.... Est esprit tout aussi "Tortueux" d'y répondre.
__________________
Questions techniques par MP
Le peu que je sais, c'est à mon ignorance que je le dois.
...............................................................................Sacha Guitry
francishop est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2008, 11h23   #15 (permalink)
Membre Expert
 
Date d'inscription: avril 2006
Messages: 1 014
Par défaut

Bonjour,

Francishop a écrit :
Citation:
...Random et Philben se sont exécutés.


Citation:
Ave Vodiem, morituri te salutant


Philippe
philben est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Défis

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide