teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

2020/12/11 10:28

投稿

torafugu
torafugu

スコア1

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  例)
10
10
  回答日 | お客様名 | メールアドレス | 〜(その他質問項目)〜 | お客様ID | ←メアドをキーに追記
11
- yyyy/mm/dd | 山田  |〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
11
+ yyyy/mm/dd | 山田  |〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
12
12
 
13
13
  (スプレッドシート側のGASからは、onEdit(e)等を使ってアクティブセルをメアド列の新しく入力されたセルに合わせて
14
14
  値を取得する方法でできそうなのですが、フォームのほぼ同時提出等があった時のアクティブセルの動きが心配でしたので、

6

2020/12/11 10:28

投稿

torafugu
torafugu

スコア1

title CHANGED
File without changes
body CHANGED
File without changes

5

2020/12/11 10:28

投稿

torafugu
torafugu

スコア1

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  例)
10
10
  回答日 | お客様名 | メールアドレス | 〜(その他質問項目)〜 | お客様ID | ←メアドをキーに追記
11
- yyyy/mm/dd | 山田  | 〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
11
+ yyyy/mm/dd | 山田  |〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
12
12
 
13
13
  (スプレッドシート側のGASからは、onEdit(e)等を使ってアクティブセルをメアド列の新しく入力されたセルに合わせて
14
14
  値を取得する方法でできそうなのですが、フォームのほぼ同時提出等があった時のアクティブセルの動きが心配でしたので、

4

2020/12/11 10:27

投稿

torafugu
torafugu

スコア1

title CHANGED
File without changes
body CHANGED
@@ -28,7 +28,7 @@
28
28
  ```google App Script
29
29
  function get_ID(e){ //フォーム送信時にget_ID(e)が起動する様トリガー設定
30
30
  var itemResponses = e.response.getItemResponses();
31
- var mail=itemResponses[1].getResponse();
31
+ var mail=itemResponses[0].getResponse();
32
32
 
33
33
  //以下、メアドとお客様IDが格納されているDBに接続します。
34
34
  //ここからDB接続手続き

3

2020/12/11 08:37

投稿

torafugu
torafugu

スコア1

title CHANGED
File without changes
body CHANGED
@@ -53,11 +53,6 @@
53
53
  ```
54
54
 
55
55
  ### 試したこと
56
-
57
- 質問項目が4つあるとし、メアドを聞くのは一つ目の質問であるとします。
58
- 仮の5つ目の回答(メアドに紐づくお客様ID)をフォームのGASで作って書き加えれば、
59
- スプレッドシートの同一行最後列に回答が入るのでは、と考えました。
60
56
  console.log(e.response.getItemResponses())でフォームの回答の配列を確認したところ、
61
57
  [ {}, {}, {}, {} ]と出力されました。{}の数は回答された質問項目の数と同じです。
62
- フォームの4つの質問のうち2つだけ答えた場合でも、{}は4つになりました。
58
+ フォームの4つの質問のうち2つだけ答えた場合でも、{}は4つになりました。
63
-

2

2020/12/11 08:30

投稿

torafugu
torafugu

スコア1

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,6 @@
8
8
 
9
9
  例)
10
10
  回答日 | お客様名 | メールアドレス | 〜(その他質問項目)〜 | お客様ID | ←メアドをキーに追記
11
- ===============================================================
12
11
  yyyy/mm/dd | 山田  | 〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
13
12
 
14
13
  (スプレッドシート側のGASからは、onEdit(e)等を使ってアクティブセルをメアド列の新しく入力されたセルに合わせて

1

2020/12/11 08:27

投稿

torafugu
torafugu

スコア1

title CHANGED
File without changes
body CHANGED
@@ -2,27 +2,63 @@
2
2
 
3
3
  Googleフォームで、簡単なアンケートを作っています。
4
4
  質問項目の一つにお客様のメールアドレスを記入する項目があります。
5
- そのメールアドレスをキーに、あらかじめDBに保存していた、対応するお客様IDを取得して、お客様の回答の集計用シートに追記したいのです
6
5
 
6
+ そのメールアドレスをキーに、あらかじめDBに保存していた、対応するお客様IDを取得して、
7
+ お客様の回答が集計されるスプレッドシートに追記したいのです。
7
8
 
9
+ 例)
10
+ 回答日 | お客様名 | メールアドレス | 〜(その他質問項目)〜 | お客様ID | ←メアドをキーに追記
11
+ ===============================================================
12
+ yyyy/mm/dd | 山田  | 〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
8
13
 
14
+ (スプレッドシート側のGASからは、onEdit(e)等を使ってアクティブセルをメアド列の新しく入力されたセルに合わせて
15
+ 値を取得する方法でできそうなのですが、フォームのほぼ同時提出等があった時のアクティブセルの動きが心配でしたので、
16
+ フォーム側のGASでなんとかできないかなと考えました。)
9
17
 
10
18
  ### 発生している問題・エラーメッセージ
19
+ 質問項目が4つあるとし、メアドを聞くのは1つ目の質問項目であるとします。
20
+ 実際には存在しない、仮の5つ目の回答(メアドに紐づくお客様ID)をフォームのGASで作って、
21
+ 回答データに付け加えれば、回答が記録されるスプレッドシートの同一行最後列に回答が入るのでは、と考えました。
22
+ そこで以下の様なコードを書いているのですが、e.responseに対してどのようなメソッドを使えば、
23
+ 回答の配列にお客様IDの要素を一つ、付け加えられるのかわからないでいます、、
11
24
 
12
- ```
13
- エラーメッセージ
25
+ このやり方をご教示いただきたいです。
14
- ```
15
26
 
16
27
  ### 該当のソースコード
17
28
 
29
+ ```google App Script
30
+ function get_ID(e){ //フォーム送信時にget_ID(e)が起動する様トリガー設定
31
+ var itemResponses = e.response.getItemResponses();
32
+ var mail=itemResponses[1].getResponse();
33
+
34
+ //以下、メアドとお客様IDが格納されているDBに接続します。
35
+ //ここからDB接続手続き
36
+ var MySQL= 'ホスト名';
37
+ var user_id = 'ユーザーID'
38
+ var user_pass = 'パスワード';
39
+ var conn = Jdbc.getConnection(MySQL, user_id, user_pass);
40
+ var stmt = conn.createStatement();
41
+ //DB接続 完了
42
+
43
+ var query = 'select id from Table where mail_address ="' + mail + '";'
44
+ var res = stmt.executeQuery(query);
45
+ while (res.next()) {
46
+ var id = res.getString('id');
47
+ }
48
+
18
- ```ここに言語名を入力
49
+ res.close();
19
- ソースコード
50
+ stmt.close();
51
+
52
+ console.log(e.response.getItemResponses()) // [ {}, {}, {}, {} ]と出力されました。{}の数は質問項目の数と同じです。
53
+ }
20
54
  ```
21
55
 
22
56
  ### 試したこと
23
57
 
24
- ここに題に対して試したこを記載ださい
58
+ 項目が4つあるとし、メアドを聞のは一つ目の質問であるとします
25
-
59
+ 仮の5つ目の回答(メアドに紐づくお客様ID)をフォームのGASで作って書き加えれば、
26
- ### 補足情報(FW/ツバージョンなど)
60
+ スプレッドシ同一行最後列に回答が入るのでは、と考えました。
27
-
61
+ console.log(e.response.getItemResponses())でフォームの回答の配列を確認したところ、
62
+ [ {}, {}, {}, {} ]と出力されました。{}の数は回答された質問項目の数と同じです。
28
- ここより詳細情報を記載てください
63
+ フォームの4つの質問のうち2つだけ答えた場合でも、{}は4つになりま
64
+