Précédent   Forum du club des développeurs et IT Pro > 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 !
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 01/02/2008, 13h42   #1
vodiem
Expert Confirmé Sénior
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 772
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 41
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 772
Points : 4 337
Points : 4 337
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
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 13h51   #2
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
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 00
Vieux 01/02/2008, 14h01   #3
vodiem
Expert Confirmé Sénior
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 772
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 41
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 772
Points : 4 337
Points : 4 337
alors j'attends ta réponse.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 14h23   #4
random
Expert Confirmé
 
Inscription : mai 2005
Messages : 3 419
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3 419
Points : 3 817
Points : 3 817
Code :
1
2
3
4
5
6
7
8
9
10
 
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 00
Vieux 01/02/2008, 14h33   #5
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
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 00
Vieux 01/02/2008, 15h04   #6
vodiem
Expert Confirmé Sénior
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 772
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 41
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 772
Points : 4 337
Points : 4 337
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 15h14   #7
jpcheck
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Homme Jean-Philippe ANDRÉ
Développeur freelance
Inscription : juillet 2007
Messages : 8 515
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe ANDRÉ
Âge : 29
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur freelance
Secteur : Finance

Informations forums :
Inscription : juillet 2007
Messages : 8 515
Points : 14 790
Points : 14 790
Envoyer un message via MSN à jpcheck
bonjour, je ne sais pas si on doit répondre en VBA ou en SQL... Ma réponse pour VBA :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 15h26   #8
Philippe JOCHMANS
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 18 473
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 45
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 18 473
Points : 40 669
Points : 40 669
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

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

Starec
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Vous pouvez consulter mes articles sur Access et PowerPoint

Si vous avez des c'est peut-être moi, car vous postez un fichier en pièce jointe sans explications.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 16h00   #9
vodiem
Expert Confirmé Sénior
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 772
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 41
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 772
Points : 4 337
Points : 4 337
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 16h49   #10
DMboup
Membre Expert
 
Inscription : juin 2003
Messages : 1 217
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 217
Points : 1 447
Points : 1 447
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 00
Vieux 01/02/2008, 17h00   #11
Philippe JOCHMANS
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 18 473
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 45
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 18 473
Points : 40 669
Points : 40 669
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Vous pouvez consulter mes articles sur Access et PowerPoint

Si vous avez des c'est peut-être moi, car vous postez un fichier en pièce jointe sans explications.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 17h38   #12
vodiem
Expert Confirmé Sénior
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 772
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 41
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 772
Points : 4 337
Points : 4 337
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2008, 09h01   #13
philben
Membre Expert
 
Inscription : avril 2006
Messages : 1 387
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 387
Points : 1 903
Points : 1 903
bonjour Vodiem,

Une solution que je n'utiliserai pas...
Fonction VBA :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
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 :
1
2
3
4
5
6
 
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 00
Vieux 03/02/2008, 10h36   #14
francishop
Membre Expert
 
Inscription : mars 2006
Messages : 1 338
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 1 338
Points : 1 478
Points : 1 478
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2008, 11h23   #15
philben
Membre Expert
 
Inscription : avril 2006
Messages : 1 387
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 387
Points : 1 903
Points : 1 903
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 00
Vieux 03/02/2008, 13h01   #16
vodiem
Expert Confirmé Sénior
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 772
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 41
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 772
Points : 4 337
Points : 4 337
francishop> lol. je réponds d'abord à philben

phiben> tu triches! mais j'adore, c'est de bonne guerre
j'aimerais dire que tu as trouvé mais non.
en contournant le pb, de surcroit tu n'y réponds plus:
Citation:
je voudrais une requete qui me permute le 6ème enregistrement avec le 4ème à partir de cette table et ainsi avoir:
=> tu as inséré daniel entre martine et frederic ce qui n'est pas pareil.
n'oublie pas que la liste n'est pas forcemment exhaustive: rien ne garanti une martine, un/deux/trois... daniel (des voisinages de daniel différent...).

je rappel que si le titre du défi est de "bien entouré martine" (conséquence) le défi ne l'est pas (cause).

autrement l'intialisation de la requete
j'ai du avoir aussi recours mais j'ai une solution un tout petit peu plus stable.
merci de ta participation.

>francishop
Citation:
Ceux que tu attendais au coin du bois ont été débusqués
détrompe toi. la solution que j'ai est tordu c'est vrai, mais elle est en vba+sql avec des notions de base ce qui ouvre la possibilité à tous d'y participer.
seul l'ingéniosité/esprit tordu rentre en compte.

Citation:
Je suis d'accord avec ceux qui émettent des réserves sur cet exercice
parceque le défi n'est pas de trouver le pourquoi du déplacement mais le comment

je te mets sur la voie, puisque tu as pu constater la difficulté dis moi ce qu'il manque pour que ce pb soit un exercice trivial?
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2008, 14h22   #17
francishop
Membre Expert
 
Inscription : mars 2006
Messages : 1 338
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 1 338
Points : 1 478
Points : 1 478
Re Bonjour,
@Philben
C'est Bon...Hummmmmmmmmm que c'est bon!

Bien qu'ici, à l'identique de l'exemple de Monsieur Larousse :"Il s'est exécuté pour éviter des poursuites" ne doit en aucun cas être assimilé à un suicide.

@Vodiem
A part ne savoir que dire pour essayer de te "Chambrer" et sachant qu'il ne peut que m'être bénéfique la présente recherche Si je n'étais d'accord pour le présent débat, une stratégie simple serait de circonstance--> Pas intervenir-->Ne pas chercher .

Citation:
Envoyé par vodiem Voir le message
je te mets sur la voie, puisque tu as pu constater la difficulté dis moi ce qu'il manque pour que ce pb soit un exercice trivial?
HO ho!...J'y retourne de suite.

Cordialement.
__________________
Questions techniques par MP
Le peu que je sais, c'est à mon ignorance que je le dois.
...............................................................................Sacha Guitry
francishop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2008, 13h03   #18
vodiem
Expert Confirmé Sénior
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 772
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 41
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 772
Points : 4 337
Points : 4 337
francishop> he bien? la nuit a été fructueuse? avec ton esprit concencieux tu n'as pas du dormir beaucoup...

j'attends toujours...
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2008, 14h06   #19
jpcheck
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Homme Jean-Philippe ANDRÉ
Développeur freelance
Inscription : juillet 2007
Messages : 8 515
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe ANDRÉ
Âge : 29
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur freelance
Secteur : Finance

Informations forums :
Inscription : juillet 2007
Messages : 8 515
Points : 14 790
Points : 14 790
Envoyer un message via MSN à jpcheck
moi je me contente du vba fourni...
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2008, 21h37   #20
vodiem
Expert Confirmé Sénior
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 772
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 41
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 772
Points : 4 337
Points : 4 337
bon je vais donc vous mettre sur la voie pour que l'on rentre dans le vif du sujet qui m'interesse.
le défi:
Citation:
je voudrais une requete qui me permute le 6ème enregistrement avec le 4ème à partir de cette table
je donne des numéros d'enregistrements et dans la table vous en avez pas.
si vous aviez un index le pb serait facile non?

alors qui peut me donner une requete qui donne un indice par enregistrement?
cela serait utile ca non, Starec?

jpcheck> je me contente moi aussi du vba fourni.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h57.


 
 
 
 
Partenaires

Hébergement Web